gpt4 book ai didi

perl - 一台服务器的 whois TCP 套接字连接失败

转载 作者:可可西里 更新时间:2023-11-01 02:42:28 26 4
gpt4 key购买 nike

我正在编写一个简短的脚本来从各自的 whois 服务器查询域名 - 而在大多数情况下,虽然通过端口 43 的 TCP 连接似乎适用于大多数 whois 服务器,但对 whois.markmonitor 的查询.com 似乎失败了,出现了一个奇怪的错误,提示 Invalid query

这是我正在使用的准系统:

#!/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服务器是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 与服务器的实际连接。

最佳答案

作为artistoex注意 - 这是因为您的域名中有一个空格。将您的打印行更改为:

print {$query_socket} "$domain_name\n";

(注意 - 大括号是出于样式原因,可以省略 - 我更喜欢它们来明确这是一个文件句柄)

关于perl - 一台服务器的 whois TCP 套接字连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33983323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com