首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从IP地址获取gTLD或ccTLD

从IP地址获取gTLD或ccTLD
EN

Stack Overflow用户
提问于 2020-08-25 16:58:47
回答 1查看 158关注 0票数 0

关于从URL获取IP地址有很多问题,反之亦然。

如标题所示,我想得到其各自IP地址的网站URL。例如:

代码语言:javascript
复制
>>> import socket
>>> print(socket.gethostbyname('google.com'))

这将查找域并返回172.217.20.14.。我在找柜台,例如:

代码语言:javascript
复制
>>> print(socket.getnamebyhost('172.217.20.14'))

任何类似的内容,都会将域返回为指定的IP的google.com

在python3中可以这样做吗?如果是,如何才能做到这一点?

更新

不幸的是,我对待这件事的方式是错误的。有些IP共享一对多的关系,即名称服务器指向多个urls,除非PTR记录另有说明。我的问题改头换面:

ipinfo.io这样的IP到域数据提供者如何为单个IP返回顶级域?

据我所知,A或AAAA的记录起着重要的作用,但我从这些记录中得到的唯一东西是ns,而不是域。我不知道如何从记录中提取gTLD或ccTLD。我愿意接受任何建议,如果有人愿意分享如何从任何IP解析gTLD或ccTLD的答案的话。最好在python中使用,但是shell脚本也足够了。

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 05:50:25

socket.gethostbyaddr('172.217.20.14'),将是正确的方式在这里,但不一定。原因如下:

域到IP的解析类似于:

域>根服务器>源服务器>源服务器的主机名到IP配置。

现在要进行逆向工程,我们必须考虑到:

  1. 可以有多个域共享相同的IP地址,就像共享主机一样。
  2. 假设域名有专用IP,nslookup或gethostbyaddr‘应该返回域名,但是前面可以有代理服务器,比如Cloudflare和Google正在使用的任何服务器。

因此,即使您手动地这样做,比如尝试查找实际的IP,谷歌的服务器运行在上面,您也不能这样做,因为这将打开他们的中心服务器,以应对各种攻击,最重要的是DDoS。

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

https://stackoverflow.com/questions/63583728

复制
相关文章

相似问题

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