我使用IO:Socket :: SSL连接到许多上游源。我想通过暂时使用IPv4来解决其中一个源的IPv6连接问题。为此,我在conf文件中使用了IPv4地址而不是hostnname。但是,我更希望使用主机名和附加选项来强制IPv4用于此源。
现在我不确定使用IO :: Socket :: SSL的选项。 Perldoc读取"您可以通过指定强制IPv4并将AF_INET作为域"这似乎有点乱码。
如果有人能提供一个如何做到这一点的例子,我会感激不尽。为了澄清,我不想使用IO :: Socket :: SSL qw(inet),因为其他连接不会受到影响。
最佳, 马库斯
答案 0 :(得分:1)
如果你在每个系统上循环,这个(未经测试的)代码应该做你想要的。如果您有多个v4服务器,则可以将它们全部放入一个数组中,然后使用eq
而不是grep
代替一个名称。
for (@servers){
my %params = (
Proto => $proto,
PeerAddr => $_,
PeerPort => $port,
...
);
my $sock;
if ($_ eq 'ipv4_servername'){
$sock = IO::Socket::SSL->new(%params, Domain => AF_INET);
}
else {
$sock = IO::Socket::SSL->new(%params);
}
...
}