Python の subprocess モジュールを使った ping の実行
2023年8月5日
このページでは、Python の subprocess モジュールを使った ping の実行方法について、簡単にまとめています。
※検証環境は、Windows 10 Pro 64bit 版で行いました。
subprocess モジュールを使った ping の実行
subprocess モジュールは、Python からコマンドを実行するためのモジュールで、Python 標準の機能のため、インストールは不要です。
以下のコードは、subprocess モジュールで ping を実行するサンプルになります。
hosts の IP アドレスに対して、ping を各2回ずつ実行します。
タイムアウトは、2000[ms]に設定しています。
実行コマンド:python subprocess_ping.py
# subprocess モジュールを使った ping の実行
import subprocess
hosts = ["192.168.1.1", "192.168.1.11", "192.168.1.115", "192.168.2.1"]
for host in hosts:
# ping の実行(Windowsの場合)
print("host : ", host)
res = subprocess.run(["ping", host, "-n", "2", "-w", "2000"], stdout=subprocess.PIPE, encoding='cp932')
print(res.stdout)
if res.returncode == 0:
# 受信成功
print("応答あり\r\n")
else:
# タイムアウト
print("応答なし\r\n")
print("-------------------------\r\n")
ping 応答あり
ping 応答なし(タイムアウト)
応答あり、なし(タイムアウト)とも、結果を確認することができました。
以上で、subprocess モジュールを使った ping の実行確認は終了です。