pingできるPythonコードを探している方
pingを実行するコード
とりあえずコードを知りたい方向けにコードをまず紹介します。
import subprocess
# ホストを指定します(pingを送信したい対象のIPアドレスまたはホスト名)
host = "127.0.0.1"
# pingコマンドを実行します
try:
result = subprocess.run(["ping", "-c", "4", host], stdout=subprocess.PIPE, text=True, check=True)
print(result.stdout)
print(f"{host}へのpingが通りました")
except subprocess.CalledProcessError as e:
print(f"pingコマンドがエラーを返しました: {e}")
except FileNotFoundError:
print("pingコマンドが見つかりませんでした。")
subprocess.run()
関数の引数を解説します。
この関数は、指定されたコマンドを実行し、その実行結果に関する情報を返します。
以下は、subprocess.run()
関数に渡される引数の意味です:
["ping", "-c", "4", host]
: 実行するコマンドとその引数を指定します。
この例では、ping
コマンドを実行し、-c 4
オプションを指定して4回の送信を行います。host
変数は、pingを送信したい対象のIPアドレスまたはホスト名を指定します。stdout=subprocess.PIPE
: 標準出力(stdout)をキャプチャし、Pythonのプログラムから結果を取得できるようにします。subprocess.PIPE
を指定することで、実行結果がバイト列として取得されますtext=True
: バイト列の代わりにテキスト(文字列)として標準出力を受け取りたい場合に使用します。この引数が指定された場合、stdout
からのデータは文字列として返されます。check=True
: コマンドの実行がエラー(終了コードが非ゼロ)の場合に、subprocess.CalledProcessError
例外を発生させます。これにより、コマンドの実行が成功したかどうかを確認できます。
このコードをmain.pyなどの名前で保存し、
コマンドプロンプトで python main.pyを実行して、pingが通れば
「127.0.0.1 へのpingが通りました」
とコマンドプロンプトで表示されます。
subprocessについて
subprocess
は、Pythonの標準ライブラリの1つです。
Pythonスクリプトから呼び出される他のプログラムやコマンドを実行、制御するためのツールとして使われています。
subprocess
モジュールを使用することで、Pythonスクリプトから外部プロセスを起動し、そのプロセスと対話したり、結果を取得したりすることができます。
例えば、全然今回の記事と関係ないんですがウェブブラウザ(Chrome)をPythonで立ち上げるみたいな
こともできます。
import subprocess
# Google Chromeの実行可能ファイルへのパスを指定します
chrome_path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# Google Chromeを起動します
try:
subprocess.run([chrome_path])
except FileNotFoundError:
print("Google Chromeが見つかりませんでした。")
上記の例からピンとくる方もいらっしゃると思うのですが
会社で使っているアプリやプログラムから値を取得したり、逆に起動させたりする時にもこのライブラリは使えます。
おわりに
ここまで読んでいただき、ありがとうございました。
9月に入り、夜は涼しくなってきてますね。
工場は田舎なので、夜の虫の音が心地いいです。
つまり最近はようやく快眠ということです。
8月は暑すぎて、バテバテでブログも更新できなかった。。。
昼は相変わらず暑いですが、皆様体調崩さず頑張っていきましょう!!