首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python 3.x获取网站的IP地址?

问如何使用Python 3.x获取网站的IP地址?
EN

Stack Overflow用户
提问于 2011-01-27 18:14:45
回答 3查看 11.8K关注 0票数 10

我有一个代表域名的字符串。如何使用Python 3.x获取对应的IP地址?如下所示:

代码语言:javascript
复制
>>> get_ip('http://www.stackoverflow.com')
'64.34.119.12'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-27 18:23:33

代码语言:javascript
复制
>>> import socket

>>> def get_ips_for_host(host):
        try:
            ips = socket.gethostbyname_ex(host)
        except socket.gaierror:
            ips=[]
        return ips

>>> ips = get_ips_for_host('www.google.com')
>>> print(repr(ips))
('www.l.google.com', [], ['74.125.77.104', '74.125.77.147', '74.125.77.99'])
票数 10
EN

Stack Overflow用户

发布于 2011-01-27 18:18:08

代码语言:javascript
复制
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on win32
>>> import socket
>>> socket.gethostbyname('cool-rr.com')
'174.120.139.162'

请注意:

  • gethostbyname()不适用于IPv6.
  • gethostbyname()使用C调用gethostbanme(),该函数已被弃用。

如果这些方法有问题,请改用socket.getaddrinfo()。

票数 11
EN

Stack Overflow用户

发布于 2011-01-27 18:18:15

最简单的方法是使用socket.gethostbyname()。但是,这不支持IPv6,并且基于过时的C调用gethostbanme()。如果你关心这些问题,你可以使用更通用的socket.getaddrinfo()。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4815065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档