ひたすらtelnetしては戻り値を拾ってきてctrl+cでセッションを切ってっていうのを1万回くらい繰り返したいんだけど、って要望を貰って、スクリプトを書くことになったんだけども、ググっても見つからなかったので明確に共有しておこうと思う。
簡単に言うと、telnetlib.writeで何を送るかってだけの話なんだけど、16進数でasciiコードを送ってみたら解決した。
tn = telnetlib.Telnet(host,23,5) tn.read_until('login') tn.write('\x03')
小文字のxは16進数をあらわすので、\でエスケープしてctrl+cを意味する16進数の03を送ってやるだけって言う話。
ルータやシステムによってはctrl+で送るコードが違うと思うんで、cheatsheet形式にして以下においとこうと思う。
0 件のコメント:
コメントを投稿