Categories: Python

【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アドレスをソースコード内で使用したい場合にぜひ使ってみてください。

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

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

7か月 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

7か月 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

7か月 ago

【Unity】割合から数値に数値から割合に変換する

この記事では、割合から数値に変換する関数…

7か月 ago

【Python】抽象クラスを定義する方法

この記事では、Pythonで抽象クラスを…

7か月 ago