本文目錄一覽:
- 1、PHP 獲取域名的幾種方法
- 2、怎麼樣用javascript實現域名查詢功能,就是查詢域名是否被使用。
- 3、用PHP實現標準的IP Whois查詢
- 4、怎樣在自己建的網站上添加“域名查詢”的功能?
- 5、域名查詢接口修改 高手進 高分!
PHP 獲取域名的幾種方法
獲取當前的域名:
echo $_SERVER[‘SERVER_NAME’];
//獲取來源網址,即點擊來到本頁的上頁網址
echo $_SERVER[“HTTP_REFERER”];
$_SERVER[‘REQUEST_URI’];//獲取當前域名的後綴
$_SERVER[‘HTTP_HOST’];//獲取當前域名
dirname(__FILE__);//獲取當前文件的物理路徑
dirname(__FILE__).”/../”;//獲取當前文件的上一級物理路徑
?
怎麼樣用javascript實現域名查詢功能,就是查詢域名是否被使用。
js是不可能實現的。你需要和服務器端語言配合
這有個php查詢域名接口的,或者找別人寫好的服務器端,js調用下
萬網提供的接口是 參數 domain=dacb.com,
返回結果com|aaa.com|211|Domain name is not available,其中 212 (查詢失敗)、211 (不可註冊)、210 (可以註冊)
用PHP實現標準的IP Whois查詢
由於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
?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)
{
global
$Text;
$rootwhois
=
‘whois.arin.net’;
$buffer
=
str_replace(‘%SERVER%’,
$rootwhois,
$Text[‘sock_connect’]);
$buffer1
=
ReadSocket($rootwhois,$IP);
if
($buffer1
!==
”)
{
$whois
=
SubStrByTag(“ReferralServer:
whois://”,”\n”,$buffer1);
//remove
port
number
“:43”;
if
(
($pos=strpos($whois,”:”))
!==
FALSE)
{
$whois
=
substr($whois,
0,$pos);
}
if
($whois
!==
”)
{
$buffer
.=
str_replace(‘%SERVER%’,
$whois,
$Text[‘sock_connect’]);
$buffer
.=
ReadSocket($whois,$IP);
}
else
{
$buffer
.=
$buffer1;
}
}
return
nl2br($buffer);
}
function
SubStrByTag($firstTag,$secondTag,$longStr)
{
$firstPos
=
strpos
($longStr,$firstTag);
$ret
=
”;
if
($firstPos
!==
FALSE)
{
$secondPos
=
strpos
($longStr,$secondTag,$firstPos);
if
($secondPos
!==
FALSE)
{
$firstPos
+=
strlen($firstTag);
$ret
=
substr($longStr,$firstPos,$secondPos-$firstPos);
}
}
return
$ret;
}
function
ReadSocket($whois,$ip)
{
global
$Text;
$buffer
=
”;
if
(!$sock
=
fsockopen(
$whois,
43,
$errNum,
$errStr,
20))
{
$buffer
=
str_replace(‘%SERVER%’,
$whois,
$Text[‘sock_fail’]);
}
else
{
fputs($sock,”$ip\n”);
//$buffer
=
fread($sock,
8192);
while(!feof($sock))
$buffer.=fgets($sock,
8192);
fclose($sock);
}
return
$buffer;
}
?
語言文件:
lang.inc.php
?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
怎樣在自己建的網站上添加“域名查詢”的功能?
找一個不需要圖形驗證的網站,用asp或php寫一個提交查詢再讀取結果的程序就可以了。
或者去
進入下載中心
點ASP
然後在左邊搜索 “域名查詢”
下面就是你要的
推薦:
1)
支持asp
2)
支持php
域名查詢接口修改 高手進 高分!
域名查詢系統重在接口,有了查詢接口,什麼都能自己完成.當然接口也不是很好找的,有很多收費的,收費的速度快,限制少.
一般網上朋友都用萬網接口,我感覺還行,有的朋友說不好.
還有這個:
,也提供域名查詢接口.
比如萬網的接口,很方便,直接用file_get_contents()提交查詢,再用正則找出pre之間的內容.根據Domain
Status的值判斷是否被註冊了.如果沒有註冊整個pre之間的內容就是:no
matching
record.當然如果域名本身不合法也會出現這個,所以先做好域名是否合法的判斷.我寫了個很簡單的提取pre內容的,可以參考一下.每個人的方法都不一樣,有好也有壞,慢慢研究吧.
?php
$domain
=
‘chinanet.cn’;
$cha
=
‘
‘.$domain.’GO=GO’;
$fp
=
file_get_contents($cha,’rb’);
$fp
=
preg_replace(‘|\n|’,’br’,$fp);
$arr
=
array();
preg_match(“|pre.*\/pre|”,$fp,$arr);
echo($arr[0]);
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/286867.html