まさにその発想はなかった……という感じなのですが ベトナムや中国でネットを使ったことがある人にはお馴染みの"8.8.8.8"に接続し、 そこで返ってきたソケット名をもって自分のIPをしる方法があります。 import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) s.getsockname() # >>> ('192.168.100.101', 52964) s.getsockname()[0] # >>> '192.168.100.101'文字列で返ってくるので、標準ライブラリipaddressとの連動も可能 import ipaddress paddress.ip_address(s.getsockname()[0]) IPv4Address('192.168