我需要获取网站的IP地址,例如'https://www.facebook.com/ '
此代码返回 IP 地址:
ip_address = socket.gethostbyname('www.facebook.com')
print('ip_address = ', ip_address) # prints 185.60.216.35
但是这段代码:
ip_address = socket.gethostbyname('https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110')
抛出异常:
socket.gaierror: [Errno -2] Name or service not known
Python中有没有办法从这个链接获取IP地址'https://www.facebook.com/ ' 不检索 www.facebook.com ?
最佳答案
您可以使用urllib.parse.urlsplit从域中获取主机名,然后获取 IP 地址。
urlsplit
返回一个namedtuple,它的netloc
属性是主机名。
>>> import socket
>>> from urllib import parse
>>> url = 'https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110'
>>> split_url = parse.urlsplit(url)
>>> ip_address = socket.gethostbyname(split_url.netloc)
>>> print(ip_address)
157.240.1.35
关于python - 如果我有完整的 url,如何使用函数 socket.gethostbyname 获取 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171276/