我正在寫一個簡短的腳本,分別從各自的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