この記事では、Pyhton のコード内からIPアドレスを取得する方法を解説します。
IPアドレスには「ローカルIPアドレス」と「グローバルIPアドレス」があります。
ローカルIPアドレスとは?
家庭内のみなどの限られた範囲のローカルなネットワーク内だけで利用されるIPアドレスのこと。プライベートIPアドレスとも呼ばれる。
グローバルIPアドレスとは?
インターネットに接続された機器を識別するために重複なく割り当てられたIPアドレスのこと。
それでは、2種類のIPアドレスの取得方法を見ていきましょう!
ローカルIPアドレスを取得するには socket
モジュール の gethostbyname()
関数 を使います。socket
モジュール は、標準ライブラリです。
import socket
socket.gethostbyname(hostname)
引数にはホスト名を渡しますが socket.gethostname()
関数 で取得できます。
import socket
# ホスト名の取得
hostname = socket.gethostname()
print(hostname)
# ホスト名をIPv4形式のアドレスに変換
ip = socket.gethostbyname(hostname)
print(ip)
実行結果
Mac.local
xxx.x.x.x
ローカルIPアドレスを取得することができました。
グローバルIPアドレスは、DynDNS などのサイトから取得できます。
import requests
url = 'http://checkip.dyndns.com/'
r = requests.get(url)
print(r.text)
実行結果
Current IP CheckCurrent IP Address: xxx.xxx.xxx.xx
IPアドレスのみを取得したい場合は、以下のように余分な文字を排除できます。
import requests
import re
url = 'http://checkip.dyndns.com/'
r = requests.get(url)
ip = re.findall(r'\d+', r.text)
print('.'.join(ip))
実行結果
xxx.xxx.xxx.xx
グローバルIPアドレスを取得することができました。
任意のサイトのHTMLを文字列で取得する方法 |
正規表現を使って複雑な文字列を操作する方法【reモジュールの使い方】 |
この記事では、Python でIPアドレスを取得する方法を解説しました。
IPアドレスをソースコード内で使用したい場合にぜひ使ってみてください。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ