脚本宝典收集整理的这篇文章主要介绍了PHP域whois脚本不返回所有信息,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
但是当我在Mac上运行以下命令时,它会返回所有信息
“whois GOOGLE.COM”
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");
为此,每个域都需要根据下面的代码查询相关的注册商whois服务器.
function GetWhoisInfo($whoisserver,$domain){ $port = 43; $timeout = 10; $fp = @fsockoPEn($whoisserver,$timeout) or die("Socket Error " . $errno . " - " . $errstr); stream_set_blocking($fp,true); fputs($fp,$domain . "\r\n"); $out = ""; while(!feof($fp)){ $out .= fgets($fp); } fclose($fp); return $out; } function GetRegistrarWhoisServer($whoisserver,$domain) { $out = GetWhoisInfo($whoisserver,$domain); $rws_string = explode("\r\n",$out); $rws = explode("Registrar WHOIS Server: ",$rws_string[2])[1]; return $rws; } function WhoisToJson($winfo) { $winfoarr = explode(PHP_EOL,$winfo); $jsonarr = []; foreach($winfoarr as $info){ $infodata = explode(": ",$info); if($infodata[0] !== "")$jsonarr[$infodata[0]] = $infodata[1]; //avoid to PRocess privacy info at the end of whois service output if($infodata[0] === "DNSSEC")break; } return json_encode($jsonarr); } function QueryWhoisServer($whoisserver,$domain) { //query to $whoisserver whois to get registrar whois server address only $rws = GetRegistrarWhoisServer($whoisserver,$domain); //query to registrar whois server (registrar whois servers are returning contact infos) $out = GetWhoisInfo($rws,$domain); //parsing infos and formatting to json return WhoisToJson($out); } echo QueryWhoisServer("whois.verisign-grs.com","google.com");
以上是脚本宝典为你收集整理的PHP域whois脚本不返回所有信息全部内容,希望文章能够帮你解决PHP域whois脚本不返回所有信息所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。