現時点で私は:
def get_inet_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('mysite.com', 80))
return s.getsockname()[0]
これは以下に基づいていました: Finding local IP addresses using Python's stdlib
しかし、これは少し疑わしいようです。私が知る限り、それは mysite.com:80 へのソケットを開き、IPv4 アドレスであると仮定して、そのソケットの最初のアドレスを返します。これは少し危険なように思えます... 私は、それが事実であると保証できるとは思いません。
それが私の最初の質問です、それは安全ですか?IPv6 対応サーバーで、IPv6 アドレスが予期せず返されることはありますか?
2 番目の質問は、同様の方法で IPv6 アドレスを取得する方法です。オプションの ipv6 パラメータを取るように関数を変更します。