【Python】pingsではなくPing3による死活監視・疎通確認

【Python】pingsではなくPing3による死活監視・疎通確認 プログラミング

「Pythonで死活監視がしたい」
「Pythonからpingを使って疎通確認をしたい」

このような場合には、Ping3の利用をおススメします。
この記事では、PythonライブラリでPing3について解説しています。

本記事の内容

  • Ping3とは?
  • Ping3のシステム要件
  • Ping3のインストール
  • Ping3の動作確認

それでは、上記に沿って解説していきます。

Ping3とは?

Ping3は、ICMPメッセージを扱えるPythonライブラリです。
ソケットを利用して、Pythonからpingが可能となります。

そのため、OSを問わずにPythonでpingを実行できます。
同じようなことができるライブラリには、pingsが存在しています。

しかし、pingsは一切メンテナンスがされていません。
そして、Python 3.8以降ではそのままでは利用もできない状態です。

ただ、pingsのソースを変更すれば動くようです。
でも、ライブラリのソースは出来る限りで変更したくありません。

そのような状況において、Ping3は活発にメンテナンスされています。

以上、Ping3について説明しました。
次は、Ping3のシステム要件を確認します。

Ping3のシステム要件

現時点(2021年9月)でのPing3の最新バージョンは、3.0.2となります。
この最新バージョンは、2021年8月26日にリリースされています。
結構、高い頻度で更新されているようです。

サポートOSに関しては、記載がありません。
とりあえず、実際に動いたモノを以下にあげておきます。

  • Windows 10
  • Ubuntu 20.04 LTS

そして、サポート対象となるPythonのバージョンはPython 3以降となります。
Python 3であれば、何でもOKとのことです。

検証で用いているのは、次のバージョンになります。

>python -V 
Python 3.9.6

ここまで見る限り、Ping3のシステム要件はあって無いようなモノと言えます。

ただし、root権限がないとPing3を利用できないOSが存在します。
OSによっては、rootで実行したプロセスしかICMPメッセージを送信できないということです。

以上、Ping3のシステム要件の説明でした。
次は、Ping3をインストールしていきます。

Ping3のインストール

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list 
Package    Version 
---------- ------- 
pip        21.2.4 
setuptools 58.0.4

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Ping3のインストールです。
Ping3のインストールは、以下のコマンドとなります。

pip install ping3

インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package    Version 
---------- ------- 
ping3      3.0.2 
pip        21.2.4 
setuptools 58.0.4

Ping3が依存するパッケージは、存在していません。
その意味では、既存環境への導入は敷居が低いと言えます。

以上、Ping3のインストールを説明しました。
最後は、Ping3の動作確認を行います。

Ping3の動作確認

Ping3は、以下の形式で利用が可能です。

  • コマンドラインツール
  • PythonのAPI(モジュール)

コマンドラインツールとしては、「ping」コマンドと大差がありません。
そもそも、Pythonのプログラムから利用することに意味があります。

今回は、PythonのAPIとして利用することにより、動作確認を行います。
その際に利用するのは、以下のコードとなります。

from ping3 import ping 

target = 'example.com' 
result = ping(target) 
print(result)

上記を実行すると、次の結果が表示されます。

0.11581921577453613

数字は、秒単位です。
つまり、0.115秒を表しています。
ミリ秒であれば、115ミリ秒となります。

以上、Ping3の動作確認を説明しました。

タイトルとURLをコピーしました