- 追加された行はこの色です。
- 削除された行はこの色です。
- ping.py へ行く。
[[プログラム周り]]
*Ping.py [#m51d4622]
家庭内に何台もPCもあって、そのIPの管理をDHCPでしている。
時々、sshで入ろうとすると、はてIPは何番じゃろうということになる。
IPがある程度めぼしがついていれば、pingをかけるけど、1から255まで手動で調べるのはめんどくさい。仕方がないので、ipを1,255まで調べるスクリプトを書く
知人から&color(red){IPはメモに書いておけ};という突っ込みがきた。まさにその通りだ。
#!/usr/local/bin/python2.4
import os,re
for i in range(1,255):
cmd='ping -c 1 -W 1 192.168.1.%d' % i
print cmd
(r,o)=os.popen2(cmd)
line=o.read()
if re.search('ttl',line):
print line
こんな感じで返事が返ってくる。
ping は,-cで問い合わせカウントを抑制し、-Wでタイムアウトまでの秒数を設定する。
ing -c 1 -W 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 バイト応答 送信元 192.168.1.1: icmp_seq=0 ttl=64 時間=0.573ミリ秒
--- 192.168.1.1 ping 統計 ---
送信パケット数 1, 受信パケット数 1, パケット損失 0%, 時間 0ミリ秒
rtt 最小/平均/最大/mdev = 0.573/0.573/0.573/0.000ミリ秒, pipe 2
ping -c 1 -W 1 192.168.1.2
ping -c 1 -W 1 192.168.1.3
ping -c 1 -W 1 192.168.1.4
ping -c 1 -W 1 192.168.1.5
ping -c 1 -W 1 192.168.1.6
ping -c 1 -W 1 192.168.1.7
ping -c 1 -W 1 192.168.1.8
ping -c 1 -W 1 192.168.1.9
ping -c 1 -W 1 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 バイト応答 送信元 192.168.1.10: icmp_seq=0 ttl=64 時間=7.66ミリ秒
--- 192.168.1.10 ping 統計 ---
送信パケット数 1, 受信パケット数 1, パケット損失 0%, 時間 0ミリ秒
rtt 最小/平均/最大/mdev = 7.665/7.665/7.665/0.000ミリ秒, pipe 2
(stdin,stdout)=os.popen2("ls -al")
で標準入力(=stdin)と、標準出力(=stdout)がfile形式で取れるので、あとはstdout.read()などをすると、その値をスクリプトの取り込める。後は、正規表現で似るなり焼くなり出来ます。