首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python3中检查域详细信息?

如何在Python3中检查域详细信息?
EN

Stack Overflow用户
提问于 2019-09-24 07:22:54
回答 1查看 938关注 0票数 0

我想检查域名(例如,google.com)的有效性,以及其他一些细节,如域名年龄、到期日期、注册国等。这些问题中有一些是由谁来解决的,但他们的付费解决方案对我来说太昂贵了。

有人知道如何在Python3中做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-24 15:27:06

使用自今年8月以来对任何gTLD都可用的新的RDAP协议,使用this将使far更简单,因此跳过这个遗留的旧协议。

你可以到https://www.icann.org/rdap那里得到很多解释。

由于您提到了一个.COM,您可以通过访问https://data.iana.org/rdap/dns.json找到注册表RDAP服务器,并且您会发现它是https://rdap.verisign.com/com/v1/

一旦您习惯了RDAP,您就会知道您需要执行以下查询:https://rdap.verisign.com/com/v1/domain/google.com

如果一切顺利,您将获得一个JSON内容,并提供您所需的所有数据。

不过,请注意:

  • .COM/.NET是一个很薄的注册表:今天(这将改变)它没有任何关于联系人的数据,包括注册人。但是.COM/.NET服务器现在也被授权拥有一个

服务器,所以一旦你知道谁是任何域名的注册人(并且你在注册表RDAP服务器回复中有到它的RDAP服务器的链接),你就可以查询它自己的RDAP服务器,以获得所有gTLD的更多详细信息

  • ,并且由于GDPR,它们符合一些ICANN临时规范,其结果基本上是不会显示任何联系数据(实际上也不显示联系数据),通常只显示一个链接或一封模糊的电子邮件来加入注册人,并且只像这个国家一样。

下面是一些例子:

代码语言:javascript
复制
$ wget -qO - https://rdap.verisign.com/com/v1/domain/google.com | jq '.events[] | select(.eventAction | contains("expiration")) | .eventDate'
"2028-09-14T04:00:00Z"

$ wget -qO - https://rdap.markmonitor.com/rdap/domain/GOOGLE.COM | jq '.entities[] | select(.roles[0] | contains("registrant")) | .vcardArray[1] | .[2][3][6]'
"US"

(请注意,注册商RDAP服务器不符合当前的ICANN规范,因为地址的最后一个元素应该是国家全名,国家ISO代码应该在一个单独的"CC“属性中)。

当然,一个合适的RDAP客户端或库将保护您免受这些细节的影响,并提供对数据的轻松访问。

PS:即使你不使用RDAP,但坚持使用whois,也不要盲目地对任何服务器使用whois,只使用权威的来源,即注册表。

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

https://stackoverflow.com/questions/58075068

复制
相关文章

相似问题

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