我正在尝试启动并运行实际需要检查whois数据库的Web服务.我现在正在做的是丑陋的,我想尽可能地避免它:我调用gwhois命令并解析其输出.丑陋.
我做了一些搜索,试图找到一种pythonic方式来完成这项任务.一般来说,我什么都没有 - 这个旧的讨论列表链接有一种方法来检查域是否存在.不是我想要的......但是,谷歌给了我最好的东西 - 其他一切只是一堆未经证实的问题.
你们中的任何人都成功地启动并运行了一些方法吗?我非常感谢一些提示,或者我应该以开源方式,坐下来自己编写代码?:)
我想创建那样的whois类
public class DomainInfo
{
public string NameServer {get;set;}
public string CreationDate {get;set;}
public string UpdatedDate {get;set;}
public string ExpirationDate {get;set;}
public string Status {get;set;}
public string RegistrantName {get;set;}
public string RegistrantOrganization {get;set;}
public string Registrantemail {get;set;}
public static DomainInfo Parse(string inputData)
{
......
}
}
Run Code Online (Sandbox Code Playgroud)
但是我遇到了一些问题,因为不同的DNS服务器返回不同的答案,解析返回的答案是一项非常困难的任务.如何才能做到这一点?
我为这个广泛的问题道歉.但我有一个IP地址列表,并希望将它们连接到他们来自的公司.
我对识别个人IP地址信息(可能甚至不可能)不感兴趣,但我认为必须有一种方法来确定IP地址是否与大公司相关联.
Whois.net通常只提供ISP名称,而不是公司名称.
谢谢
如果任何TLD的域名已经注册或可用,我需要一种可靠的方法来检查Python .大胆的短语是我正在努力的关键点.
因为我不需要解析结果,所以我将代码从whois库中删除,并尝试通过自己调用Linux的whois来进行查询:
p = subprocess.Popen(['whois', 'example.com'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
r = p.communicate()[0]
print(r.decode())
Run Code Online (Sandbox Code Playgroud)
这样做效果更好.除了它不那么可靠.我尝试了一个特定的域名,并且"超出了您的连接限制.请放慢速度,稍后再试." 好吧,超出限制的不是我.在一个巨大的办公室里,在一个IP后面意味着其他人可能会在我进行查询之前达到极限.
已有类似的问题:
......但他们要么只处理一组有限的TLD,要么不会受到可靠性的困扰.
我有兴趣访问完整的WHOIS数据库,以便扩展我正在开展的域名项目.我知道ARIN只向非商业研究人员提供这个数据库,我所知道的每个WHOIS提供者(包括ARIN本身)都有限速.
我也知道,但是,已经存在(如domaintools.com的注册查询部分,它可以搜索注册名称域),这是不可能的,除非该网站已在WHOIS数据库的缓存副本直接进入一些商业服务.
知道他们如何获得他们的数据吗?
如今,每当您使用WHOIS命令时,都不会返回任何有用的信息.我通常必须去Godaddy,Dnsstuff或其他服务来获取数据.我理解其原因主要是垃圾邮件.
我只是想知道其他服务如何获得这些数据.他们是否使用不同类型的WHOIS命令?
我正在尝试查找COM/NET的所有whois服务器列表.Verisign是.com,.net,.name,.cc和.tv域名的权威注册机构.
可能的解决方案: 使用.com区域文件中的域列表找出whois服务器的至少一百万个(通过whois.crsnic.net)的完整列表,并从whois结果中读取官方whois.
这样我就可以构建一个90%以上的完整列表.我已准备好走这条路并在这里发布结果,但如果有人知道更好的方式/来源,请帮忙.谢谢!
我正在监视域名何时到期.我熟悉即将到期的域名流程:宽限期,兑换期,然后删除.
令我感到困惑的是,当我在任何WhoIs数据库(NetworkSolution,ICANN等)中搜索此特定域名时.结果是:
No match for "<domain name>" in the registrar database.
Run Code Online (Sandbox Code Playgroud)
来自NetworkSolutions:
之前的信息直接来自注册人或域名注册商以外的网络解决方案.因此,Network Solutions不保证其准确性或完整性.
显示此记录的基础注册表数据
最后一行是指向注册表中的一些简要信息的链接.最值得注意的信息是WhoIs服务器名称和注册商(GoDaddy).
这是该链接的输出
Domain Name: <domain name>
Registrar: GODADDY.COM, LLC
Sponsoring Registrar IANA ID: 146
Whois Server: whois.godaddy.com
Referral URL: http://www.godaddy.com
Name Server: No nameserver
Status: redemptionPeriod https://www.icann.org/epp#redemptionPeriod
Updated Date: <date>
Creation Date: <date>
Expiration Date: <date>
Run Code Online (Sandbox Code Playgroud)
来自ICANN WhoIs Search
在注册表或注册商的WHOIS服务器中找不到请求的二级域.
现在,ICANN不提供有关注册表的任何信息.
那么,如果没有匹配,从技术上讲它是不是可以购买?这怎么可能?即使在redemptionPeriod中,注册商也不应该总是有信息.
我需要获取whois信息.我的功能正常,但没有返回"管理联系人,注册人联系人,管理联系人,技术联系人"信息.
但是当我在Mac上运行以下命令时,它会返回所有信息"whois google.com"
这是我的php函数从whois服务器获取信息
function QueryWhoisServer($whoisserver, $domain) {
$port = 43;
$timeout = 10;
$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
fputs($fp, $domain . "\r\n");
$out = "";
while(!feof($fp)){
$out .= fgets($fp);
}
fclose($fp);
return $out;
}
echo QueryWhoisServer("whois.verisign-grs.com", "google.com");
Run Code Online (Sandbox Code Playgroud) 不仅像.com或.net那样简单,还有.co.uk,.fr,.gov.rw ......?
我真的应该做一个巨大的映射"与相关的whois服务器",还是有一个更简单的方法?
whois ×10
dns ×4
domain-name ×2
python ×2
api ×1
c# ×1
geolocation ×1
ip ×1
ip-address ×1
lookup ×1
nameservers ×1
php ×1
python-3.x ×1
sysadmin ×1
verisign ×1