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

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

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

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

1年 ago

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

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

1年 ago

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

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

1年 ago