Pythonでコンピュータの重要なネットワーク情報を表示してみます。
ネットワークでの作業中に、ネットワークまたはインターネットの問題に関するトラブルが発生する場合があります。このような場合、ご自身のシステムネットワーク接続情報を確認しトラブルを解決する必要があります。解決するための手段として、でコンピュータの重要なネットワーク情報を表示します。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■コンピュータの重要なネットワーク情報を表示する
では、早速、コンピュータの重要なネットワーク情報を表示するスクリプトを書いていきます。
■コード
import subprocess data = subprocess.check_output(['ipconfig','/all']).decode('cp932').split('\n') for item in data: print(item.split('\r')[:-1])
subprocessモジュールを呼び出します。subprocessモジュールはPythonの標準ライブラリなので、事前にインストールする必要はあります。
dataという変数を作成し、subprocess.check_output()で引数でコマンドを実行し、その出力を返し、格納します。引数には、今回「ipconfig」コマンドの「all」を使用します。その後にdecode()で出力される情報をデコードします。今回は「cp932」と指定します。「utf-8」に指定すると「UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x8d in position 13: invalid start byte」というエラーが発生します。
デコードの後にsplit() で区切り文字で改行します。
次にdata変数に格納した情報をfor文で繰り返し処理を行い、出力させていきます。
■実行
今回のスクリプトを「view_important_network_info.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、ネットワーク情報が表示されることを確認できました。
■ifcfgモジュールを使用し、ネットワーク情報を表示する
次に、ネットワーク情報を表示する別の手段としては、ifcfgモジュールを使用する方法があります。ifcfgモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
ifcfgモジュールのインストールする場合は、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。
pip install ifcfg
起動後、上記のコマンドを入力し、Enterキーを押します。
なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。
py -3.8 -m pip install ifcfg
切り替えるために、上記のコマンドを入力し、Enterキーを押します。
Collecting ifcfg
Downloading ifcfg-0.21-py2.py3-none-any.whl (10 kB)
Installing collected packages: ifcfg
Successfully installed ifcfg-0.21
Enterキーを押すと、インストールが開始され、「Successfully installed」と表示されます。これが表示されれば、正常にインストールは完了となります。
■コード
import ifcfg print(ifcfg.interfaces())
インポートで、ifcfgモジュールを呼び出します。その後に、ifcfg.interfaces()でネットワークの情報を取得し、print関数で出力します。
■実行
このスクリプトを「network_info.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、ネットワークの情報が出力されました。出力はされましたがネットワーク情報が表示されていません。今回使用しているコンピューターは、無線LANアダプタを使用しており、「’device’: ‘wireless lan adapter wi-fi’(無線LANアダプタ)」と表示されてます。
無線LANアダプタを使用していると、ネットワーク情報が表示されないということがわかりました。
今後、ifcfgモジュールを使用し「無線LANアダプタ」でもネットワークの情報が出力される方法を公開するかもしれません。
コメント