【Python3】自分のIPアドレスを取得する方法

おはこんばんにちは、せなです。

今回はPythonで自分のIPアドレスを取得する方法を説明したいと思います。

ローカルIPアドレスを取得する方法

socketライブラリを使用する方法

簡単な方法として標準ライブラリのsocketを使用する方法があります。

import socket

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

ipgetライブラリを使用する方法

ipgetは外部ライブラリのためpipでインストールする必要があります。

pip install ipget
import ipget

ip = ipget.ipget()
print(ip.ipaddr('eth0'))    # 有線IP
print(ip.ipaddr('wlan0'))    # 無線IP

グローバルIPアドレスを取得する方法

requestsを使用する方法

ipify APIにリクエストを行うことで取得することができます。
外部サービスを使用するため、サービスの運用状況に影響を受ける可能性がありますので注意が必要です。

import requests

def get_public_ip():
    response = requests.get('https://api.ipify.org?format=json')
    ip = response.json()['ip']
    return ip

# グローバルIPアドレスを取得する
public_ip = get_public_ip()
print(public_ip)

whoisを使用する方法

JPNICにwhois問い合わせを行なって取得する方法です。
問い合わせにはドメインが必要になります。

import whois

def get_global_id(domain):
    jpnic_server = 'whois.nic.ad.jp'
    query = whois.query(domain, server=jpnic_server)
    if query:
        return query.registrar_id
    else:
        return None

domain_name = 'example.co.jp'   # ドメインに変更
global_id = get_global_id(domain_name)
if global_id:
    print(f'{domain_name}: {global_id}')
else:
    print(domain_name)

最後に

IPアドレスの取得方法について説明させてもらいました。

開発中のシステムで自分のIPアドレスを自動で設定するようにしたので備忘録として残したいと思います。

ではでは〜