Python PR

【Python】IPアドレスを取得する方法

記事内に商品プロモーションを含む場合があります

この記事では、Pyhton のコード内からIPアドレスを取得する方法を解説します。

IPアドレスには「ローカルIPアドレス」と「グローバルIPアドレス」があります。

ローカルIPアドレスとは?

家庭内のみなどの限られた範囲のローカルなネットワーク内だけで利用されるIPアドレスのこと。プライベートIPアドレスとも呼ばれる。

グローバルIPアドレスとは?

インターネットに接続された機器を識別するために重複なく割り当てられたIPアドレスのこと。

それでは、2種類のIPアドレスの取得方法を見ていきましょう!

ローカル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アドレスの取得

グローバルIPアドレスは、DynDNS などのサイトから取得できます。

参考PythonでグローバルIPアドレスを取得する

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アドレスを取得することができました。

まとめ

この記事では、Python でIPアドレスを取得する方法を解説しました。

IPアドレスをソースコード内で使用したい場合にぜひ使ってみてください。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ