【发布时间】:2017-11-19 22:54:40
【问题描述】:
我正在尝试编写一个通过 SOCKS5 代理发送请求的脚本。 我想做的是通过 SOCKS 代理 DNS 请求。我设法使用 IO::Socket::Socks 模块来做到这一点。
此代码允许我连接到 SOCKS 代理,然后通过 SOCKS 解析主机名,然后再连接到它。
use strict;
use warnings;
use IO::Socket::Socks;
my $sock = IO::Socket::INET->new("127.0.0.1:9050") or die $@;
$sock = IO::Socket::Socks->start_SOCKS($sock, ConnectAddr => "example.com", ConnectPort => 80) or die $SOCKS_ERROR;
$sock->syswrite ("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n");
$sock->close();
这很好用。但是,我想向用户展示 IP 已解析,我正在努力实现这一点,因为对于 $sock 对象,它似乎将对等方视为 SOCKS 代理主机,而不是真正的最终主机。
有谁知道我如何通过 SOCKS 检索从这个 DNS 解析的 IP?
谢谢!
【问题讨论】:
标签: perl proxy dns socks resolve