用PHP實現標準的IP Whois查詢

2021-04-16 22:55:01 字數 1692 閱讀 7844

由於internet的歷史原因,apin負責整個網路ip的整體規劃以及北美區 還有部分非洲地區的ip分配管理,與此相應的是,whois.apin.net是ip whois的root server,標準的ip whois查詢方法是,首先向whois.apin.net查詢某個ip屬於哪個大區,然後再向該區的whois 伺服器查詢此ip的whois詳細資訊。

目前負責 ipv4的大區

whois.arin.net 美洲區 北美

whois.apnic.net 亞太區 包括亞洲和澳大利亞

whois.ripe.net 歐洲區 歐洲/中東(西亞)/北非

whois.lacnic.net 拉美區 拉丁美洲和加勒比海區域

非洲網路的ip查詢也在whois.arin.net

向某個whois伺服器提交whois查詢的過程

開啟乙個到whois伺服器的43埠的連線,然後傳送要查詢的網域名稱 和乙個回車換行。如果要查詢多個網域名稱,請用空格分開然後從sokect中讀取結果。最後伺服器將自動斷開連線。

用php實現

1.驗證ip(用 ip2long代替 ereg)

2.向 whois.arin.net查詢,如果資料庫中沒有相關資訊,會給出乙個referral server的url,格式如下

referralserver:

然後根據此資訊,繼續查詢

**如下

whoisip.php

include_once "lang.inc.php";

$ip = isset($_get['ip'])?$_get['ip']:'blank';

if (-1 === ip2long($ip))

die(str_replace('%ip%', $ip, $text['ip_invalid']));

echo getwhois($ip);

function getwhois($ip)

if ($whois !== '')

else

}return nl2br($buffer);

} function substrbytag($firsttag,$secondtag,&$longstr)

}return $ret;

}function readsocket($whois,$ip)

else

return $buffer;

}?>

語言檔案:

lang.inc.php

$text = array(

'ip_invalid'=>'i want to get a valid ip, but it is [%ip%].',

'sock_connect'=>'ask %server% ...

','sock_fail'=>'cannot connect to the host:%server%'

);?>

其他有名的whois伺服器

1.tucows (whois.opensrs.net) 一次只能乙個連線

dnsstuff就是查詢的它

2.bulkregister (whois.bulkregiter.net) 小心它臨時封ip,如果大量連線的話

3.network solutions (whois.networksolutions.com) 一天只能查1000次

4.go daddy (whois.godaddy.com)

5.whois.abuse.net

用PHP實現換膚

用php其實也可以實現簡單的 換膚 其實就是換css 當然不可能做到象asp.net 2.0那樣厲害拉 但有時也可以湊合著使用,先要準備幾個css style default.css body box box title box content menu menu active menu activ...

用PHP實現的單鏈表

單鏈表顧名思義就是乙個鏈式資料結構,它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。如下圖。鍊錶節點 class node 鍊錶中還有兩個特別重要的方法,插入和刪除。插入需要找到插入的位置,把前乙個元素的next指標指向被插入的節點,並將被插入節點的next指標指向後乙個節點,如下圖左...

用PHP實現的單鏈表

單鏈表顧名思義就是乙個鏈式資料結構,它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。如下圖。首先,我們寫出鍊錶節點的類。單鏈表中的每乙個節點,都儲存其資料域和後驅指標 鍊錶節點 class node 鍊錶中還有兩個特別重要的方法,插入和刪除。插入需要找到插入的位置,把前乙個元素的nex...