日期:2014-05-17  浏览次数:20427 次

关于fsockopen函数连接43端口的问题
我现在搞一个域名whois信息查询的程序,现在有些域名可以查,比如com,net的域名可以查到。

有些类型的却查不了,比如我现在要查询cn域名的whois信息始终失败

代码:

PHP code
$query = "www.net.cn"; //要查询的域名
$server = "whois.cnnic.cn"; //whois服务器地址

$data = ""; //初始化最终输出的变量值

$fp = @fsockopen($server, 43);
fputs($fp, $query);
while (!feof($fp)) {
    $data .= nl2br(fgets($fp, 128));
}
fclose($fp);
echo $data; 



我用工具检测了whois.cnnic.cn的43端口是开放的

奇怪为什么会输出空白呢?

是我的程序有问题?还是哪里出了问题?

------解决方案--------------------
我记得有的是可以屏蔽查询的,是不是这个问题.
------解决方案--------------------
[User:liangdong Time:18:20:36 Path:~/php]$ telnet whois.cnnic.cn 43
Trying 218.241.97.14...
Connected to whois.cnnic.cn.
Escape character is '^]'.
www.net.cn
Domain Name: www.net.cn
ROID: 20021209s10021s00003058-cn
Domain Status: clientDeleteProhibited
Domain Status: clientUpdateProhibited
Domain Status: clientTransferProhibited
Registrant ID: hc034904482-cn
Registrant Organization: 北京万网志成科技有限公司
Registrant Name: 王娟
Registrant Email: wjuan@hichina.com
Sponsoring Registrar: 北京万网志成科技有限公司
Name Server:ns3.hichina.com
Name Server:ns4.hichina.com
Registration Date: 1998-10-19 00:00:00
Expiration Date: 2020-10-19 00:00:00
Dnssec Deployment: N
Connection closed by foreign host.

telnet可以,说明它呀的用\n判断结束,$query = "xxxx\n"
------解决方案--------------------
好奇怪呀!
发起会话时连握手信号都没有
就是打个电话不也要先确认一下对方是谁吗?