我正在写一个简短的脚本,分别从各自的WHOIS服务器查询域名 - 而在大多数情况下,同时通过端口43的TCP连接似乎是工作对于大多数域名注册服务器上,查询whois.markmonitor.com
似乎与一个奇怪的错误,上面写着无效查询将失败。whois的TCP套接字连接失败的一个服务器
下面是我用什么样的准系统:
#!/usr/bin/perl
#whois.pl
use strict;
use IO::Socket;
my $domain_name = "google.com";
my $query_socket = new IO::Socket::INET(
PeerAddr => 'whois.iana.org',
PeerPort => 43,
Proto => 'tcp');
print $query_socket "$domain_name ";
print $query_socket "\n\r";
while(my $this_line = <$query_socket>) {
print $this_line;
}
close($query_socket);
如上所见,所使用的域名服务器是whois.iana.org
;这也如预期的那样与whois.internic.net
一起工作。只有在whois.markmonitor.com
的情况下,下面的错误被认为是:
$ perl whois.pl
Invalid query
有人能帮助阐明我怎么可以或许获得更详细的输出更多的光线,以检查是否有在查询中正在取得任何错误到服务器?
作为一个额外的测试,通过telnet
正常连接似乎工作正常,如下图所示:
$ telnet whois.markmonitor.com 43
Trying 64.124.14.21...
Connected to whois.markmonitor.com.
Escape character is '^]'.
google.com
Domain Name: google.com
Registry Domain ID: 2138514_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2015-06-12T10:38:52-0700
Creation Date: 1997-09-15T00:00:00-0700
......<output truncated>......
这使我相信,通过端口43到服务器的实际连接被接受的服务器端。
我想这是由于额外的空间字符在'“$ domain_name”' – artistoex
无论是它或它不喜欢'\ r \ n' – Sobrique