案例例子:
PHP代码:
<?php // 域名whois查询 public function whois(Request $request){ if($request->isMethod('post')){ $url =$request->url; $request_url=$this->LookupDomain($url); $regex = "/Name Server: [A-Z0-9]*\.[A-Z0-9.]+/is"; preg_match_all($regex,$request_url,$matches,PREG_PATTERN_ORDER); $strrpe=str_replace("Name Server: ","",$matches[0]); $alll= explode("\r\n", $request_url); return response()->json(['code'=>200,'message'=>['data'=>$alll,'dns'=>implode("<br>", $strrpe)]]); if($arr['code']==200){ return response()->json(['code'=>200,'message'=>$arr]); }else{ return response()->json(['code'=>500,'message'=>$arr['msg']]); } } return view('tools.icp.whois'); } public function LookupDomain($domain){ $whoisservers = array( "aero"=>"whois.aero", "arpa" =>"whois.iana.org", "asia" =>"whois.nic.asia", "at" =>"whois.nic.at", "be" =>"whois.dns.be", "biz" =>"whois.biz", "br" =>"whois.registro.br", "ca" =>"whois.cira.ca", "cc" =>"whois.nic.cc", "cn" =>"whois.cnnic.net.cn", "com" =>"whois.verisign-grs.com", "gov" =>"whois.nic.gov", "in" =>"whois.inregistry.net", "co.in" =>"whois.inregistry.net", "net.in" =>"whois.inregistry.net", "org.in" =>"whois.inregistry.net", "ind.in" =>"whois.inregistry.net", "firm.in" =>"whois.inregistry.net", "info" =>"whois.afilias.info", "int" =>"whois.iana.org", "is" =>"whois.isnic.is", "it" =>"whois.nic.it", "jobs" =>"jobswhois.verisign-grs.com", "me" =>"whois.meregistry.net", "mil" =>"whois.nic.mil", "mobi" =>"whois.dotmobiregistry.net", "museum" =>"whois.museum", "name" =>"whois.nic.name", "net" =>"whois.verisign-grs.net", "org" =>"whois.pir.org", "pro" =>"whois.registrypro.pro", "tc" =>"whois.adamsnames.tc", "tel" =>"whois.nic.tel", "travel" =>"whois.nic.travel", "tv" => "whois.www.tv", "co.uk" =>"whois.nic.uk", "org.uk" =>"whois.nic.uk", "us" =>"whois.nic.us", "ws" =>"whois.website.ws", "top" =>"whois.nic.top", "xin" =>"whois.nic.xin" ); $dotpos=strpos($domain,"."); $domtld=substr($domain,$dotpos+1); $whoisserver = $whoisservers[$domtld]; if(!$whoisserver) { return "Error: No appropriate Whois server found for <b>$domain</b> domain!"; } $result = $this->QueryWhoisServer($whoisserver, $domain); if(!$result) { return "Error: No results retrieved $domain !"; } return $result; } public 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; } ?>
前端代码:
<div class="col-md-9"> <div class="alert alert-success" role="alert">whois查询工具:通过域名可直接查询该域名whois信息:</div> <div class="form-group"> <input type="text" id="domainurl" class="form-control" > </div> <button type="button" class="btn btn-info" onclick="cliclk_help()">查询whois备案</button> <div class="panel panel-warning" style="margin-top: 15px;"> <div class="panel-heading"> <h3 class="panel-title">whois备案查询结果 ,域名 <span class="domainss"></span> 的信息</h3> </div> <style> .listht h5{ padding-top: 40px;} </style> <div class="panel-body listht"> </div> </div> </div> <script> function cliclk_help() { var code =$('#domainurl').val(); if(code==''){ layer.msg('请先输入域名') } $.ajax({ url:"{{route('tools.icp.whois')}}", type:'post', data:{"url":code}, datatype:'json', success:function(msg){ console.log(msg) if(msg.code==200){ var data= msg.message.data; $('.domainss').text(data[0].split(':')[1]) var html=""; html+='<table class="table table-hover table-bordered">\n' + '<thead>\n' + '<tr>\n' + ' <th>域名</th>\n' + ' <th>'+data[0].split(':')[1]+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>注册商</th>\n' + ' <th>'+data[7].split(':')[1]+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>联系邮箱</th>\n' + ' <th>'+data[9].split(':')[1]+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>联系电话</th>\n' + ' <th>'+data[10].split(':')[1]+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>创建时间</th>\n' + ' <th>'+data[5].split(':')[1].substring(0, data[5].split(':')[1].length - 3)+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>过期时间</th>\n' + ' <th>'+data[6].split(':')[1].substring(0, data[6].split(':')[1].length - 3)+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>更新时间</th>\n' + ' <th>'+data[4].split(':')[1].substring(0, data[4].split(':')[1].length - 3)+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>域名服务器</th>\n' + ' <th>'+data[2].split(':')[1]+'</th>\n' + ' </tr>\n' + '<tr>\n' + ' <th>DNS</th>\n' + ' <th>'+msg.message.dns+'</th>\n' + ' </tr>\n' + '</thead>\n' + '</table>'; for (var p in data){ html+='<p>'+data[p]+'</p>' } $('.listht').html(html) }else{ $('.listht').html('<h5>'+msg.message+'</h5>') } },error:function(){ alert('服务器故障'); } }); } </script>
在线域名WHOIS查询(PHP版):
clone git@github.com:jyblogs/WHOIS.git
【附录A】目前的顶级域名及WHOIS服务器一览:
文章评论(0)