如何在python中获取全局IP地址?

时间:2017-08-28 15:28:32

标签: python

我正在将bash代码转换为python代码。 我通过

获得了bash代码中自己主机的全局ip地址
hostname -I  # output -> 19x.xxx.xxx.xxx xxxx:xxxx:....

19x.xxx.xxx.xxx是自己主机的全局IP地址。

我试图通过

获取python中的全局ip地址
import socket
name=socket.gethostname()
id_address=socket.gethostbyname(name)
print("id_address = {0}".format(id_address))

输出是本地主机地址,如

127.xxx.xxx.xxx

我有办法在python中获取全局IP地址吗?

1 个答案:

答案 0 :(得分:0)

你可以在没有任何外部库的情况下做到这一点:

import urllib.request

external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8')

print(external_ip)

它使用的网站为您提供公共 ipv4 地址以及非常棒的标准库,
也许有更好的方法,但它可能是最快的方法,

代码在 python3 上测试,没有库,windows- 运行良好

类似问题:Getting a machine's external IP address with Python

类似答案:https://stackoverflow.com/a/41432835/14154066