3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】ラズパイのIPアドレスを取得したい

Posted at

はじめに

ラズパイを使用してIPアドレスを取得するコードを書く機会がありました。
はじめに実装したコードでプログラムを実行したときにIPアドレスを取得できましたが
ループバックアドレスが取得されるだけということがありました。

IPアドレスを取得する方法はいくつかありますが
その中でも3つ簡易的なコードと合わせて紹介していきます。

対象読者

  • IPアドレスを取得したい方
  • 自分と同じようにそういった機会がある人

目次

IPアドレスを取得するプログラム

1. 冒頭でも触れたループバックアドレスを取得するプログラム

  • 「python IPアドレス」 と検索したらまずはじめにでてくる(でてきた)IPアドレスを取得する方法
import socket

ip = socket.gethostbyname(socket.gethostname())
print(ip)

2. Pythonの標準ライブラリを使用

  • 標準ライブラリを使用してお手軽にIPアドレスを取得する方法
  • ネットワークに接続するために使用されるインターフェイスのIPアドレスを取得
  • インターフェイスを指定するわけではないが実際に使用されるインターフェイスのIPアドレスを取得することができる
import socket

connect_interface = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
connect_interface.connect(("8.8.8.8", 80))
print(connect_interface.getsockname()[0])
connect_interface.close()

3. 指定したインターフェイスのIPアドレスを取得することができる

  • モジュールをインストールしてIPアドレスを取得する方法
  • 求めているインターフェイスを明示的に指定できるため取得したIPアドレスを取得することができる
import ipget

target_ip = ipget.ipget()
print(target_ip.ipaddr("eth0"))

おわりに

どのような方法で取得するのが正しいかなどはわかりませんが
たくさんの選択肢があるということを念頭においてユースケースによって使い分けられたらと思います。

参考文献

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?