> php教程 > PHP源码 > PHP 执行 whois 操作的代码

PHP 执行 whois 操作的代码

PHP中文网
풀어 주다: 2016-06-01 14:33:16
원래의
1200명이 탐색했습니다.

要获取指定IP地址的whois数据,可使用如下代码

<?php
/**
    Program to perform ip whois
    Silver Moon
    m00n.silv3r@gmail.com
*/
 
$ip = "74.65.112.23";
 
$whois = get_whois($ip);
 
echo "<pre class="brush:php;toolbar:false">$whois
"; /** Get the whois content of an ip by selecting the correct server */ function get_whois($ip) { $w = get_whois_from_server('whois.iana.org' , $ip); preg_match('@whois\.[\w\.]*@si' , $w , $data); $whois_server = $data[0]; //echo $whois_server; //now get actual whois data $whois_data = get_whois_from_server($whois_server , $ip); return $whois_data; } /** Get the whois result from a whois server return text */ function get_whois_from_server($server , $ip) { $data = ''; #Before connecting lets check whether server alive or not #Create the socket and connect $f = fsockopen($server, 43, $errno, $errstr, 3); //Open a new connection if(!$f) { return ''; } #Set the timeout limit for read if(!stream_set_timeout($f , 3)) { die('Unable to set set_timeout'); #Did this solve the problem ? } #Send the IP to the whois server if($f) { fputs($f, "$ip\r\n"); } /* Theory : stream_set_timeout must be set after a write and before a read for it to take effect on the read operation If it is set before the write then it will have no effect : http://in.php.net/stream_set_timeout */ //Set the timeout limit for read if(!stream_set_timeout($f , 3)) { die('Unable to stream_set_timeout'); #Did this solve the problem ? } //Set socket in non-blocking mode stream_set_blocking ($f, 0 ); //If connection still valid if($f) { while (!feof($f)) { $data .= fread($f , 128); } } //Now return the data return $data; }
로그인 후 복사

执行结果

#
# Query terms are ambiguous.  The query is assumed to be:
#     "n 74.65.112.23"
#
# Use "?" to get help.
#
 
#
# The following results may also be obtained via:
# http://whois.arin.net/rest/nets;q=74.65.112.23?showDetails=true&showARIN=false&ext=netref2
#
 
NetRange:       74.64.0.0 - 74.79.255.255
CIDR:           74.64.0.0/12
OriginAS:
NetName:        RRNY
NetHandle:      NET-74-64-0-0-1
Parent:         NET-74-0-0-0-0
NetType:        Direct Allocation
RegDate:        2006-03-27
Updated:        2007-01-29
Ref:            http://whois.arin.net/rest/net/NET-74-64-0-0-1
 
OrgName:        Road Runner HoldCo LLC
OrgId:          RRNY
Address:        13820 Sunrise Valley Drive
City:           Herndon
StateProv:      VA
PostalCode:     20171
Country:        US
RegDate:        2000-09-28
Updated:        2011-07-06
Comment:        Allocations for this OrgID serve Road Runner residential customers out of the New York City, NY and Syracuse, NY RDCs.
Ref:            http://whois.arin.net/rest/org/RRNY
 
ReferralServer: rwhois://ipmt.rr.com:4321
 
OrgTechHandle: IPTEC-ARIN
OrgTechName:   IP Tech
OrgTechPhone:  +1-703-345-3416
OrgTechEmail:  abuse@rr.com
OrgTechRef:    http://whois.arin.net/rest/poc/IPTEC-ARIN
 
OrgAbuseHandle: ABUSE10-ARIN
OrgAbuseName:   Abuse
OrgAbusePhone:  +1-703-345-3416
OrgAbuseEmail:  abuse@rr.com
OrgAbuseRef:    http://whois.arin.net/rest/poc/ABUSE10-ARIN
 
#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
로그인 후 복사


관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿