首页 / 更多教程 / 如何以编程方式查找域名是否已注册
如何以编程方式查找域名是否已注册
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何以编程方式查找域名是否已注册,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2432字,纯文字阅读大概需要4分钟。
内容图文
![如何以编程方式查找域名是否已注册](/upload/InfoBanner/zyjiaocheng/764/cc7e408e5bee48ed8d7727eab88b1f9a.jpg)
我使用pywhois来确定域名是否已注册.这是我的源代码. (从a.net到zzz.net的所有排列)
#!/usr/bin/env python
import whois #pip install python-whois
import string
import itertools
def main():
characters = list(string.ascii_lowercase)
##domain names generator
for r in range(1, 4) :
for name in itertools.permutations(characters, r) : #from 'a.net' to 'zzz.net'
url = ''.join(name) + '.net'
#check if a domain name is registered or not
try :
w = whois.whois(url)
except (whois.parser.PywhoisError): #NOT FOUND
print(url) #unregistered domain names?
if __name__ == '__main__':
main()
我得到了以下结果:
jv.net
uli.net
vno.net
xni.net
但是,以上所有域名都已注册.这不准确.有人能解释一下吗?有很多错误:
fgets: Connection reset by peer
connect: No route to host
connect: Network is unreachable
connect: Connection refused
Timeout.
here报告了另一种方法.
import socket
try:
socket.gethostbyname_ex(url)
except:
print(url) #unregistered domain names?
在谈到速度时,我使用map来并行处理.
def select_unregisteredd_domain_names(self, domain_names):
#Parallelism using map
pool = ThreadPool(16) # Sets the pool size
results = pool.map(query_method(), domain_names)
pool.close() #close the pool and wait for the work to finish
pool.join()
return results
解决方法:
这是一个棘手的问题,比大多数人意识到的要棘手.原因是有些人不希望你发现这一点.大多数域名注册商都会使用大量的黑魔法(即许多特定于TLD的黑客)来获取他们提供的精彩列表,并且通常他们会弄错.当然,最终他们肯定会知道,因为他们拥有EPP访问权限可以保留权威答案(但通常只有在您点击“订单”时才会这样做).
你的第一种方法(whois)曾经是一个很好的方法,而且我在90年代大规模地做了这个,当时一切都更加开放.如今,许多顶级域名(TLD)都会保护验证码和阻碍性网络界面背后的信息,以及诸如此类的东西.如果不出意外,每个IP的查询数量都会有配额. (并且它也可能是有充分理由的,我过去常常将大量垃圾邮件发送到用于注册域名的电子邮件地址).另请注意,通过查询向其WHOIS数据库发送垃圾邮件通常会违反其使用条款,您可能会受到限制,阻止甚至向您的ISP收到滥用报告.
您的第二种方法(DNS)通常要快得多(但不要使用gethostbyname,使用Twisted或其他一些异步DNS来提高效率).您需要弄清楚每个TLD对已采用域和免费域的响应如何.仅仅因为域没有解析并不意味着它是免费的(它可能只是未使用).相反,一些TLD拥有所有不存在域的登录页面.在某些情况下,单独使用DNS是不可能的.
那么,你如何解决它?我很害怕,不轻松.对于每个TLD,您需要弄清楚如何巧妙地使用DNS和whois数据库,从DNS开始并在棘手的情况下采用其他方法.确保不要使用查询来填充whois数据库.
另一个选择是获得其中一个注册商的API访问权限,他们可能提供对域搜索的编程访问.
内容总结
以上是互联网集市为您收集整理的如何以编程方式查找域名是否已注册全部内容,希望文章能够帮你解决如何以编程方式查找域名是否已注册所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。