2015年9月7日 12:15
Pythonで学ぶ 基礎からのプログラミング入門 (16) Pythonをシェルスクリプトのように使ってみよう(後編)
で、-cは送る回数を指定するオプションです。出力をみるとpingの到達率を取得するためには“5 packets transmitted, 5 received, 0% packet loss, time 403ms”の行の“0%”に対応している箇所を取得できればよいことがわかりますね。これは、以前解説した正規表現を使えば実現できます。
実際に書いてみましょう。宛先はコマンドライン引数で指定するようにします。
import sys, commands, re
if(len(sys.argv) != 2):
exit()
dest_ip = sys.argv[1]
ping_command = ’ping ’ + dest_ip + ’ -i 0.1 -c 5’
result = commands.getoutput(ping_command)
regex = re.compile(’\d+ packets transmitted, \d+ received, (\d+)% packet loss, time \d+ms’)
for line in result.split(’\n’)