我希望能够通过客户端javascript获取whois数据(以及idn域).可能吗?也许存在一些类似REST的免费WhoIs服务?
尝试使用http://whoisxmlapi.com服务.
服务URL: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);
}
});
Run Code Online (Sandbox Code Playgroud)
这是工作代码.
上面提到的服务不是免费的,但有几个免费的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');
}
});
Run Code Online (Sandbox Code Playgroud)
这是工作代码.
您需要查看HTML文档的结构,并选择,处理和显示您感兴趣的数据.示例只是打印整个表而不进行任何处理.
如果您在 php 中启用了 exec(),您可以做的是创建一个包含以下内容的 php 文件:
exec('whois domain.com');
Run Code Online (Sandbox Code Playgroud)
然后创建一个 .ajax() 请求到 php 脚本,在其中传递域名并输出它。