我希望能够通过客户端 javascript 获取 whois 数据(以及 idn 域)。可能吗?也许存在一些免费的类似 REST 的 WhoIs 服务?
5 回答
尝试使用http://whoisxmlapi.com服务。
服务网址: http: //www.whoisxmlapi.com/whoisserver/WhoisService
您需要指定outputFormat=json
和domainName=insert_domain_here
参数..
示例 URL:http ://www.whoisxmlapi.com/whoisserver/WhoisService?outputFormat=json&domainName=stackoverflow.com 。
示例代码(使用 jQuery 简化 AJAX 通信):
$.ajax({
url: 'http://www.whoisxmlapi.com/whoisserver/WhoisService',
dataType: 'jsonp',
data: {
domainName: 'stackoverflow.com',
outputFormat: 'json'
},
success: function(data) {
console.log(data.WhoisRecord);
}
});
这是工作代码。
更新:
上面提到的服务不是免费的,但是有几个免费的 whois 服务提供 HTML 输出,通过使用 YQL,您可以将 HTML 作为 JS 检索。有关更多详细信息,请参阅此答案。
示例(使用 jQuery 和jquery.xdomainajax):
var domain = 'stackoverflow.com';
$.ajax({
url: 'http://whois.webhosting.info/' + domain,
type: 'GET',
success: function(res) {
// using jQuery to find table with class "body_text" and appending it to a page
$(res.responseText).find('table.body_text').appendTo('body');
}
});
这是工作代码。
您需要查看 HTML 文档的结构,并选择、处理和显示您感兴趣的数据。示例只是打印整个表格,没有任何处理。
如果您在 php 中启用了 exec(),您可以做的是创建一个包含以下内容的 php 文件:
exec('whois domain.com');
然后向传递域名的 php 脚本创建一个 .ajax() 请求并输出它。
一个名为node-whois的 npm 包为我完成了这项工作。它是服务器端 JS,而不是客户端,但也许这会对某人有所帮助。
我还试图找到一个带有 JSON 输出的免费 whois 提供程序,但找不到。但是,有微软提供的 WHOIS windows 客户端,就像上面提到的那样,我们可以使用 PHP/cgi 来获取详细信息。
我不确定是否有任何 WHOIS 查找/查询提供商免费提供 JSON 输出。
顺便说一句,我刚刚从 sourceforge.net 找到了这个phpWhois,这将是从服务器使用 whois 的一个很好的起点。这也是 RoboWhois / RubyWhois 提供者使用的库。