本文目录一览:
- 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]);
?