Python の subprocess モジュールを使った ping の実行

このページでは、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 応答あり
ping 応答あり

ping 応答なし(タイムアウト)

ping 応答なし(タイムアウト)
ping 応答なし(タイムアウト)

応答あり、なし(タイムアウト)とも、結果を確認することができました。

以上で、subprocess モジュールを使った ping の実行確認は終了です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です