精品国语人妻色乱码二区,免费乱理伦片在线观看2018,日韩精品视频在线播放,高潮无码又爽又刺激视频在线

<source id="8jepl"><menu id="8jepl"></menu></source>
    <source id="8jepl"><menu id="8jepl"></menu></source>
    <rp id="8jepl"><mark id="8jepl"><label id="8jepl"></label></mark></rp>
          <source id="8jepl"><menu id="8jepl"><label id="8jepl"></label></menu></source>
          <source id="8jepl"></source>
              <source id="8jepl"></source>
                <video id="8jepl"><menu id="8jepl"></menu></video>
                0712-2888027 189-8648-0214
                微信公眾號(hào)

                孝感風(fēng)信網(wǎng)絡(luò)科技有限公司微信公眾號(hào)

                當(dāng)前位置:主頁 > 技術(shù)支持 > PHP > 用php實(shí)現(xiàn)域名whois信息查詢

                用php實(shí)現(xiàn)域名whois信息查詢

                時(shí)間:2016-01-28來源:風(fēng)信官網(wǎng) 點(diǎn)擊: 1610次
                網(wǎng)上有很多種 whois查詢 的php實(shí)現(xiàn),大致實(shí)現(xiàn)的思路無不例外以下幾種:

                1.通過http調(diào)用 xinnet或者是萬網(wǎng)的 whois查詢接口查詢,而后將結(jié)果輸出到頁面,這種最簡單的,通過間接調(diào)用新網(wǎng) whois查詢接口的實(shí)現(xiàn)方法

                php whois查詢API制作

                網(wǎng)站們經(jīng)常需要查詢網(wǎng)站whois信息,這里介紹一個(gè)使用php制作的whois api接口,方法也很簡單,下面詳細(xì)介紹一下。

                這里我們從萬網(wǎng)或新網(wǎng)的數(shù)據(jù)接口取得數(shù)據(jù),透過php的簡單文本處理再輸出。

                <?php  
                $domain = $_GET['q'];
                 
                preg_match("/<div class=\"lyTableInfoWrap\">(.*)<\/div>\r\n      <\/div><!-- #BeginLibraryItem/is", @file_get_contents('http://www.xinnet.cn/Modules/agent/serv/pages/domain_whois.jsp?domainNameWhois='.$domain.'&noCode=noCode'), $whois);
                 
                echo trim($whois[1]);
                ?>
                做到這里,可能有的朋友要問了,這不就是簡單的php腳本么?!哪是api接口阿;接著我們來加工一下,讓查詢方式更專業(yè)一些:
                我們需要的查詢格式如下:

                http://api/whois/baidu.com

                其中baidu.com是需要查詢的域名

                可以修改nginx的配置來實(shí)現(xiàn)這一點(diǎn):

                location ~* /whois/(.+)$ {  
                    proxy_pass http://127.0.0.1:8080/whois/index.php?q=baidu.com
                }

                2.直接通過讀取 whois服務(wù)器,實(shí)現(xiàn)域名的查詢。

                PHP版域名whois信息(過期時(shí)間)查詢工具

                很多whois服務(wù)器已經(jīng)停止工作了;

                很多whois協(xié)議格式是不一樣的;

                因?yàn)橐獙懹蛎^期自動(dòng)提醒工具,重新更新了代碼在附件里,含提取過期時(shí)間的正則。目前支持22種后綴的域名。

                =============================

                修改自網(wǎng)上流傳的版本,并作了修正:

                增加了兩百多種域名的支持;

                修正了過期時(shí)間解析錯(cuò)誤的BUG,改進(jìn)了效率;

                預(yù)期推出域名過期自動(dòng)提醒服務(wù)。不過也要看心情和動(dòng)力的。

                PHP代碼如下:
                <?php   
                if(!isset($_GET['domain'])){   
                    echo "1.您未指定要查詢的域名!<br />";   
                    echo "2.接口使用方法:/whois.php?domain=<FONT color=#ff0000>域名</FONT><br />";   
                    echo "3.<FONT color=#ff0000>域名</FONT>請(qǐng)勿加<FONT color=#ff0000>www.</FONT><br />";   
                    exit;   
                }   
                $domain  = $_GET['domain'];   
                class SearchDomain   
                {   
                    private $arr_whois_servers = array(   
                        'com'=>'whois.internic.net',   
                        'net'=>'whois.internic.net',   
                        'org'=>'whois.pir.org',   
                        'asia'=>'whois.crsnic.net',   
                        'ac'=>'whois.nic.uk',   
                        'ad'=>'whois.nic.ad',   
                        'ae'=>'whois.uaenic.ae',   
                        'ag'=>'whois.nic.ag',   
                        'ai'=>'whois.offshore.com.ai',   
                        'al'=>'whois.inima.al',   
                        'an'=>'whois.una.net',   
                        'ao'=>'whois.fccn.pt',   
                        'aq'=>'whois.nsrc.org',   
                        'ar'=>'whois.nic.ar',   
                        'as'=>'whois.nic.as',   
                        'am'=>'whois.amnic.net',   
                        'au'=>'whois.amnic.net',   
                        'at'=>'whois.amnic.net',   
                        'az'=>'whois.domain.az',   
                        'ba'=>'whois.utic.net.ba',   
                        'bb'=>'whois.domains.org.bb',   
                        'be'=>'whois.dns.be',   
                        'bf'=>'whois.onatel.bf',   
                        'bg'=>'whois.digsys.bg',   
                        'bh'=>'whois.batelco.com.bh',   
                        'bi'=>'whois.nic.bi',   
                        'biz'=>'whois.nic.biz',   
                        'bm'=>'whois.bermudanic.bm',   
                        'bn'=>'whois.brunet.bn',   
                        'bo'=>'whois.digsys.bo',   
                        'by'=>'whois.unibel.by',   
                        'bz'=>'whois.belizenic.bz',   
                        'br'=>'whois.registro.fapesp.br',   
                        'bt'=>'whois.nic.bt',   
                        'bv'=>'whois.norid.no',   
                        'ca'=>'whois.cira.ca',   
                        'cc'=>'whois.nic.cc',   
                        'cd'=>'whois.nic.cd',   
                        'cf'=>'whois.socatel.intnet.cf',   
                        'cg'=>'whois.nic.cg',   
                        'ch'=>'whois.nic.ch',   
                        'ci'=>'whois.aipdi.ci',   
                        'ck'=>'whois.oyster.net.ck',   
                        'cl'=>'whois.nic.cl',   
                        'cm'=>'whois.info.intelcam.cm',   
                        'cn'=>'whois.cnnic.net.cn',   
                        'co'=>'whois.nic.uniandes.edu.co',   
                        'coop'=>'whois.nic.coop',   
                        'cu'=>'whois.nic.cu',   
                        'cx'=>'whois.nic.cx',   
                        'cy'=>'whois.nic.cy',   
                        'cz'=>'whois.nic.cz',   
                        'de'=>'whois.denic.de',   
                        'dk'=>'whois.dk-hostmaster.dk',   
                        'dj'=>'whois.intnet.dj',   
                        'do'=>'whois.nic.do',   
                        'dz'=>'whois.nic.dz',   
                        'ec'=>'whois.nic.ec',   
                        'edu'=>'whois.educause.net',   
                        'ee'=>'whois.eenet.ee',   
                        'eg'=>'whois.frcu.eun.eg',   
                        'es'=>'whois.nic.es',   
                        'et'=>'whois.telecom.net.et',   
                        'fi'=>'whois.ripe.net',   
                        'fj'=>'whois.usp.ac.fj',   
                        'fk'=>'whois.fidc.org.fk',   
                        'fm'=>'whois.dot.fm',   
                        'fo'=>'whois.nic.fo',   
                        'fr'=>'whois.nic.fr',   
                        'gb'=>'whois.nic.uk',   
                        'ge'=>'whois.nic.net.ge',   
                        'gf'=>'whois.nplus.gf',   
                        'gg'=>'whois.nic.gg',   
                        'gh'=>'whois.ghana.com',   
                        'gi'=>'whois.gibnet.gi',   
                        'gl'=>'whois.nic.gl',   
                        'gm'=>'whois.nic.gm',   
                        'gn'=>'whois.psg.com',   
                        'gov'=>'whois.nic.gov',   
                        'gp'=>'whois.nic.gp',   
                        'gq'=>'whois.getesa.gq',   
                        'gr'=>'whois.hostmaster.gr',   
                        'gs'=>'whois.adamsnames.tc',   
                        'gt'=>'whois.uvg.edu.gt',   
                        'gu'=>'whois.gadao.gov.gu',   
                        'hk'=>'whois.hkdnr.net.hk',   
                        'hm'=>'whois.registry.hm',   
                        'hn'=>'whois.nic.hn',   
                        'hr'=>'whois.carnet.hr',   
                        'hu'=>'whois.nic.hu',   
                        'id'=>'whois.idnet.net.id',   
                        'ie'=>'whois.domainregistry.ie',   
                        'il'=>'whois.isoc.org.il',   
                        'im'=>'whois.nic.im',   
                        'in'=>'whois.domain.ncst.ernet.in',   
                        'info'=>'whois.afilias.com',   
                        'int'=>'whois.iana.org',   
                        'io'=>'whois.nic.io',   
                        'ir'=>'whois.nic.ir',   
                        'is'=>'whois.isnic.is',   
                        'it'=>'whois.nic.it',   
                        'je'=>'whois.isles.net',   
                        'jo'=>'whois.nic.net.jo',   
                        'jp'=>'whois.nic.ad.jp',   
                        'ke'=>'whois.nbnet.co.ke',   
                        'kg'=>'whois.domain.kg',   
                        'kh'=>'whois.mptc.gov.kh',   
                        'kn'=>'whois.clu.edu',   
                        'kr'=>'whois.nic.or.kr',   
                        'kw'=>'whois.domainname.net.kw',   
                        'kz'=>'whois.domain.kz',   
                        'lb'=>'whois.aub.edu.lb',   
                        'lc'=>'whois.isisworld.lc',   
                        'li'=>'whois.nic.li',   
                        'lk'=>'whois.nic.lk',   
                        'lr'=>'whois.psg.com',   
                        'ls'=>'whois.co.ls',   
                        'lt'=>'whois.domreg.lt',   
                        'lu'=>'whois.dns.lu',   
                        'lv'=>'whois.nic.lv',   
                        'ly'=>'whois.nic.ly',   
                        'ma'=>'whois.iam.ma',   
                        'mc'=>'whois.nic.mc',   
                        'md'=>'whois.ripe.net',   
                        'mil'=>'whois.nic.mil',   
                        'mg'=>'whois.orstom.mg',   
                        'mh'=>'whois.nic.net.mh',   
                        'mk'=>'whois.mpt.com.mk',   
                        'mm'=>'whois.nic.mm',   
                        'mn'=>'whois.nic.mn',   
                        'mo'=>'whois.umac.mo',   
                        'mp'=>'whois.marketplace.mp',   
                        'mq'=>'whois.nic.mq',   
                        'mr'=>'whois.univ-mkc.mr',   
                        'ms'=>'whois.adamsnames.tc',   
                        'mt'=>'whois.um.edu.mt',   
                        'mu'=>'whois.posix.co.za',   
                        'mw'=>'whois.tarsus.net',   
                        'mx'=>'whois.nic.mx',   
                        'my'=>'whois.mynic.net.my',   
                        'mz'=>'whois.nambu.uem.mz',   
                        'na'=>'na-nic.com.na',   
                        'name'=>'whois.nic.name',   
                        'nc'=>'whois.norstom.nc',   
                        'nf'=>'whois.names.nf',   
                        'ni'=>'whois.nic.ni',   
                        'nl'=>'whois.domain-registry.nl',   
                        'no'=>'whois.norid.no',   
                        'np'=>'whois.mos.com.np',   
                        'nu'=>'whois.nic.nu',   
                        'nz'=>'whois.domainz.net.nz',   
                        'om'=>'whois.gto.net.om',   
                        'pa'=>'whois.nic.pa',   
                        'pe'=>'whois.ekeko.rcp.net.pe',   
                        'ph'=>'whois.domreg.org.ph',   
                        'pg'=>'whois.unitech.ac.pg',   
                        'pk'=>'whois.pknic.net.pk',   
                        'pl'=>'whois.nask.pl',   
                        'pm'=>'whois.nic.pm',   
                        'pn'=>'whois.nic.pn',   
                        'pr'=>'whois.uprr.pr',   
                        'ps'=>'whois.nic.ps',   
                        'pt'=>'whois.fccn.pt',   
                        'py'=>'whois.nic.py',   
                        'qa'=>'whois.qatar.net.qa',   
                        're'=>'whois.nic.fr',   
                        'ro'=>'whois.rnc.ro',   
                        'ru'=>'whois.ripn.net',   
                        'rw'=>'whois.nic.rw',   
                        'sa'=>'whois.saudinic.net.sa',   
                        'sb'=>'whois.sbnic.net.sb',   
                        'sd'=>'whois.sudatel.sd',   
                        'se'=>'whois.nic-se.se',   
                        'sg'=>'whois.nic.net.sg',   
                        'sh'=>'whois.nic.sh',   
                        'si'=>'whois.arnes.si',   
                        'sj'=>'whois.norid.no',   
                        'sk'=>'whois.sk-nic.sk',   
                        'sm'=>'whois.intelcom.sm',   
                        'sn'=>'whois.nic.sn',   
                        'so'=>'whois.nic.so',   
                        'st'=>'whois.st-registry.tecnisys.net',   
                        'su'=>'whois.ripn.net',   
                        'sv'=>'whois.svnet.org.sv',   
                        'sz'=>'whois.iafrica.sz',   
                        'tc'=>'whois.adamsnames.tc',   
                        'td'=>'whois.tit.td',   
                        'tf'=>'whois.adamsnames.tc',   
                        'tg'=>'whois.nic.tg',   
                        'th'=>'whois.thnic.net',   
                        'tj'=>'whois.nic.tj',   
                        'tm'=>'whois.nic.tm',   
                        'tn'=>'whois.ati.tn',   
                        'to'=>'whois.tonic.to',   
                        'tp'=>'whois.nic.tp',   
                        'tr'=>'whois.metu.edu.tr',   
                        'tt'=>'whois.nic.tt',   
                        'tw'=>'whois.twnic.net',   
                        'tz'=>'whois.psg.com',   
                        'tv'=>'whois.networksolutions.com',   
                        'ua'=>'nic.net.ua',   
                        'ug'=>'whois.nic.ug',   
                        'uk'=>'whois.nic.uk',   
                        'uk'=>'whois.ripe.net',   
                        'um'=>'whois.isi.edu',   
                        'us'=>'whois.nic.us',   
                        'uy'=>'whois.rau.edu.uy',   
                        'uz'=>'whois.freenet.uz',   
                        've'=>'whois.nic.ve',   
                        'wf'=>'whois.nic.fr',   
                        'vg'=>'whois.adamsnames.tc',   
                        'vi'=>'whois.nic.vi',   
                        'vn'=>'whois.batin.com.vn',   
                        'vu'=>'whois.vunic.vu',   
                        'ws'=>'samoanic.ws',   
                        'yt'=>'whois.nic.fr',   
                        'yu'=>'whois.nic.yu',   
                        'za'=>'whois.co.za',   
                        'zm'=>'whois.zamnet.zm',   
                 
                    );   
                    public $domain="";   
                    function SetDomain($udomain)   
                    {   
                        $this->domain = $udomain;   
                    }   
                 
                    function GetInfo()   
                    {   
                        $wl = "";   
                        $w_server = $this->GetServer();   
                        if($w_server=="") return "";   
                            $fp = fsockopen($w_server, 43, $errno, $errstr, 30);   
                        if(!$fp) {   
                            echo $errstr;   
                            return "";   
                        }   
                        $out = $this->domain."";   
                        fputs($fp, $out);   
                        while (!feof($fp))   
                        {   
                            $wl = fgets($fp, 255);   
                            if(preg_match("/no match/",$wl))   
                            {   
                                fclose($fp);   
                                return "ok";   
                            }   
                            if(preg_match("/Expiration Date/",$wl))   
                            {   
                                $lines = explode(":",$wl);   
                                $t = trim($lines[1]);   
                                $ts = explode(" ",$t);   
                                $t = $ts[0];   
                                if(preg_match("/[^0-9-]/",$t))   
                                {   
                            return date("Y-m-d",strtotime($t));   
                                }   
                                fclose($fp);   
                        return '';   
                            }   
                        }   
                        fclose($fp);   
                        return "";   
                    }   
                    //   
                    //獲得域名的整個(gè)whois信息   
                    //   
                    function GetWhois()   
                    {   
                        $wh = "";   
                        $w_server = $this->GetServer();   
                        if($w_server=="") return "";   
                        $fp = fsockopen($w_server, 43, $errno, $errstr, 30);   
                        if(!$fp)   
                        {   
                            echo $errstr;   
                            return "";   
                        }   
                        $out = $this->domain."";   
                        $out .= "Connection: Close";   
                        fputs($fp, $out);   
                        while (!feof($fp))   
                        {   
                            $wh .= nl2br(fgets($fp, 255));   
                        }   
                        fclose($fp);   
                        return $wh;   
                    }   
                    //   
                    //輸出當(dāng)前域名的狀態(tài)信息   
                    //   
                    function PrintSta()   
                    {   
                        $rs = $this->GetInfo();   
                        if($rs=="ok") echo $this->domain." 未注冊(cè)!<br/>";   
                        else if($rs=="") echo "無法查詢 ".$this->domain." 狀態(tài)!<br/>";   
                        else echo $this->domain." 已注冊(cè),到期時(shí)間:$rs<br/>";   
                    }   
                    //   
                    //獲得 whois 查詢服務(wù)器   
                    //   
                    function GetServer()   
                    {   
                        $udomain=strtolower(substr(strrchr($this->domain,'.'),1));   
                        return array_key_exists($udomain,$this->arr_whois_servers) ? $this->arr_whois_servers[$udomain] : '';   
                    }   
                    //   
                    //英語的月份轉(zhuǎn)為數(shù)字   
                    //   
                    function MonthToNum($m)   
                    {   
                        echo $m;   
                        $m = strtolower($m);   
                        for($i=1;$i<=12;$i++)   
                        {   
                            $tt = mktime(0,0,0,$i+1,0,2005);   
                            if($m==strtolower(strftime("%b",$tt)))   
                            {   
                                if($i>9) return $i-1;   
                                else return "0".$i-1;   
                            }   
                        }   
                    }   
                }   
                 
                $sd = new SearchDomain();   
                $sd->SetDomain("$domain");   
                //查詢域名是否被注冊(cè),等價(jià)于 $sd->PrintSta();   
                $rs = $sd->GetInfo();   
                if($rs=="ok") echo $sd->domain." 未注冊(cè)!<br/>";   
                else if($rs=="") echo "無法查詢 ".$sd->domain." 狀態(tài)!<br/>";   
                else echo $sd->domain." 已注冊(cè),到期時(shí)間:$rs<br/>";   
                //獲得域名的詳細(xì)whois信息   
                //echo $sd->GetWhois();   
                 
                ?>
                
                請(qǐng)注意:經(jīng)進(jìn)一步使用發(fā)現(xiàn)上面的whois server返回的并不是統(tǒng)一格式的信息,并且部分whois server無響應(yīng)。部分小后綴域名是無法查詢的,還需要進(jìn)一步處理。(舉例,.kr返回韓文數(shù)據(jù),.fr,.de返回某種協(xié)議的格式,而.ru返回了另一種格式的協(xié)議,說明頁面是俄文的。)

                對(duì)應(yīng)的 域名后綴 -> whois 服務(wù)器 的映射關(guān)系大致如下:
                  1. 'com'=>'whois.internic.net',   
                  2. 'net'=>'whois.internic.net',   
                  3. 'org'=>'whois.pir.org',   
                  4. 'asia'=>'whois.crsnic.net'
                  5. 'cn'=>'whois.cnnic.net.cn',   
                  6. 'cc'=>'whois.nic.cc',   

                        對(duì)于這種方法,雖然實(shí)現(xiàn)起來很簡單,但是對(duì)于在Godaddy.com平臺(tái)或者是國內(nèi)的廈門易名網(wǎng)注冊(cè)的 域名來說,只能查到一個(gè)大概,而無法查到具體真正的 domain 的信息,如下:

                <?php
                include('whois_inc/whois.main.php');
                $whois =newWhois();
                $result = $whois->Lookup($domain);
                $output = implode("\n", $result['rawdata']);
                echo $output;?>

                在godday注冊(cè)的域名的whois信息

                DomainName: lxfq.cn
                ROID:20130114s10001s62921725-cn
                DomainStatus: ok
                Registrant ID:000046dbRegistrant:黎軍RegistrantContactEmail:2673732891@qq.com
                SponsoringRegistrar:北京網(wǎng)尊科技有限公司NameServer: ns1.vtopchina.cn
                NameServer: ns2.vtopchina.cn
                RegistrationDate:2013-01-1404:02:16ExpirationDate:2014-01-1404:02:16
                DNSSEC:unsigned

                在廈門易名網(wǎng)注冊(cè)的域名的whois信息

                        所以,無論上面兩種方法,都不能比較完善的實(shí)現(xiàn) whois 的查詢功能。

                        這時(shí)候 Jay感覺到,僅僅是 whois 這件小事,也需要用牛刀,我們需要一個(gè)完善 whois查詢組件。

                        此時(shí)的 Jay立刻打開 google.com,搜索 php whois,果不其然!

                        在 百度中,搜了半天,出來的都是一些外門奇方,google一搜,就立馬出現(xiàn)一套完整的 whois client 的 php 實(shí)現(xiàn),項(xiàng)目名稱就叫《phpWhois》,項(xiàng)目主頁:http://www.phpwhois.org/ ,于是立馬 download 下來,根據(jù)文檔中的 demo,很快就把 whois 的查詢功能實(shí)現(xiàn)了。

                        下面是調(diào)用 phpWhois 組件,實(shí)現(xiàn) whois信息查詢的核心代碼部分:

                <?php
                include('whois_inc/whois.main.php');
                $whois =new Whois();
                $result = $whois->Lookup($domain);
                $output = implode("\n", $result['rawdata']);
                echo $output;
                ?>

                        在這里<pre></pre>標(biāo)簽的作用是定義預(yù)格式化的文本,就是將 whois 查詢到的 raw text 按原來的文本排版格式直接輸出。

                DomainName: lxfq.cn
                ROID:20130114s10001s62921725-cn
                DomainStatus: ok
                Registrant ID:000046dbRegistrant:黎軍RegistrantContactEmail:2673732891@qq.com
                SponsoringRegistrar:北京網(wǎng)尊科技有限公司NameServer: ns1.vtopchina.cn
                NameServer: ns2.vtopchina.cn
                RegistrationDate:2013-01-1404:02:16ExpirationDate:2014-01-1404:02:16
                DNSSEC:unsigned

                總結(jié):

                        whois雖然僅僅只是一種最簡單的基于 tcp 的查詢協(xié)議,但是很多工作,即便我們實(shí)現(xiàn)起來也非常簡單,如果有現(xiàn)成的 php組件可以用的話,就應(yīng)該盡量避免自己重復(fù)發(fā)明一個(gè)輪子。倒不是說不可以,只是重新實(shí)現(xiàn)一種協(xié)議,即便是最簡單的那種,也會(huì)遇到很多的例外。

                        就像 phpWhois 組件,爭(zhēng)對(duì)godaddy類似這種的例外情況,就處理的非常好。

                        所以,專業(yè)的事情,還是讓專業(yè)的開源組件去實(shí)現(xiàn)吧!

                熱門關(guān)鍵詞: php 域名 whois 信息查詢
                欄目列表
                推薦內(nèi)容
                熱點(diǎn)內(nèi)容
                展開