ネットワークエンジニアのプログラミング【Python入門(Ping実行)】

ネットワークエンジニアのプログラミング【Python入門(Ping実行)】

ネットワークエンジニアがよく利用するPingを、15行のPythonコーディングでツール化します。

目次

Pingによる疎通確認

ネットワークエンジニアは、Pingによる疎通確認を実施する場面が多くあります。「設定変更前後の正常性確認」や「障害対応時」等、Pingを利用して複数の機器への疎通確認を実施します。

Pingを実行するツールとしては「ExPing」があります。ExPingは、とても使いやすいツールですので、Windowsの場合は困ることはありません。

しかし、Pythonで簡単なコードが書くことができれば、LinuxやMacでも同じようなことができますし、利用場面に合わせて、使いやすいようにカスタマイズすることができます。

Ping実行してる人

Pythonによる簡単なPingツール

ネットワーク環境

下記のネットワーク環境で、ルーター10台に対してPingによる疎通確認を行います。

ネットワーク構成図

実行環境・前提条件

実行環境

今回の実行端末の環境は下記の通りです。Windowsでも、Pythonをインストールしていれば、実行可能です。

  • OS:macOS
  • Pythonバージョン:3.9.13

hostファイル登録

ホスト名を指定してPingが実行できるように、hostsファイルに下記の記載をしています。

192.168.2.1     Router1
192.168.2.2     Router2
192.168.2.3     Router3
192.168.2.4     Router4
192.168.2.5     Router5
192.168.2.6     Router6
192.168.2.7     Router7
192.168.2.8     Router8
192.168.2.9     Router9
192.168.2.10    Router10

対象機器リスト

Pingで疎通確認する対象の機器を『destinations.txt』として、Pythonプログラムと同じフォルダに保存します。

Router1
Router2
Router3
Router4
Router5
Router6
Router7
Router8
Router9
Router10

Pythonコード

Pingを実行するプログラムは『pyping.py』として、下記のコードを記述します。

import subprocess

#pingを実行し、成功ならTrue、失敗ならFalseを返す
def exec_ping(dest):
    p = subprocess.run(["ping", dest, "-t", "1"], capture_output=True)
    return p.returncode == 0

#ping実行先をファイルから読み込んで結果を表示
with open('destinations.txt', 'r') as f:
    for line in f:
        dest = line.strip()
        if exec_ping(dest):
            print(dest + " OK 👍🍺") #OKならビールで乾杯
        else:
            print(dest + " NG 😨⁉️") #NGなら青ざめます

「OKならビールで乾杯」、「NGなら青ざめた顔」を表示しています。自分でコードをかければ、このような遊び心のあるカスタマイズも自由自在です!(絵文字を表示できるかは、環境次第ですので、ご注意ください。)

Pingツールの実行結果

作成したPythonプログラムを実行します。※Router4とRouter9をダウンさせています。

python pyping.py
Pingツールを実行している動画

Pingツールのカスタマイズ

今回は対象機器にPingを1回ずつ実行して結果を表示するツールでしたが、下記のようなカスタマイズも自由にできます。

Pingツールのカスタマイズの例
  • ctrl+c で止めるまでは繰り返し実行し続ける。
  • 画面表示と同時にファイルにも結果を保存する。( エビデンス保存の簡略化)

これで、ネットワークエンジニアのプログラミング【Python入門(Ping実行)】の説明は完了です!プログラミングができると、仕事の効率化ができますし、何より仕事を楽しむことができます!!

プラグラミング学習サイト・スクール情報

簡単なツール作成であれば、独学でも十分にプログラミングが可能になると思います。短期間で体系的に学習するのであれば、「有料学習サイト」や「オンラインスクール」の利用をおすすめします。

どちらのサイトも無料で学習可能な範囲があります。有料コンテンツに関しては、月額1000円程度です。

  • URLをコピーしました!
  • URLをコピーしました!
目次