Pythonで複数設定されているIPアドレスを取得する方法

コンピュータによっては複数のIPアドレスが設定されて運用されている場合があります。

そんな時は先日書いた

PythonでコンピュータのIPアドレスを取得する方法
Pythonで動作しているコンピュータのIPアドレスを取得するには「socket」パッケージの「gethostname()」「gethostbyname()」を利用して簡単に取得することができます。

ではIPアドレスを1つしか取得できないので、ちょっとうまく行かないケースが出てきます。

Pythonでコンピュータに複数のIPアドレスが設定されている場合はどうすれば上手く取得できるのでしょうか?

スポンサーリンク

IPアドレスが複数設定されている場合でも上手く取得する方法

サーバーなどでは信頼性を上げるためなどにネットワークを冗長化してある場合があります。

そのため、複数のIPアドレスが1つのコンピュータに設定されている場合があります。

そんな時はPythonでコンピュータのIPアドレスを取得するにはちょっとした工夫が必要なようです。

難しいので以下のURLを参考に作ってみます。

複数のNICがある場合、どのようにして自分のすべてのIPアドレスを特定するのですか?

複数のIPアドレス取得

複数のIPアドレスを取得するには「psutil」パッケージを利用します。

パッケージをインストールするにはコマンドプロンプトで

を実行してください。

これで準備は完了です。

実際にIPアドレスを取得する関数は既出のURLのソースをそのまま利用します。

上記の「ipv4s」、「ipv6s」にIPv4とIpv&の情報が設定されるので

としてやれば表示できます。

※上記の例は1つしかIPアドレスが設定されていませんが、複数設定されている場合でも正常に取得できます。

まとめ

Pythonで複数のIPアドレスが設定されているものを取得する場合は「psutil」パッケージを利用すればIPv4、IPv6のどちらでも取得することができます。

以上、Pythonで複数設定されているIPアドレスを取得する方法でした。

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