Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用perl用户代理的套接字连接_Perl_Proxy_Websocket - Fatal编程技术网

使用perl用户代理的套接字连接

使用perl用户代理的套接字连接,perl,proxy,websocket,Perl,Proxy,Websocket,我有一个脚本,它使用以下代码连接到服务器 $sock = new IO::Socket::INET ( PeerAddr => $server, PeerPort => $port, Proto => 'tcp',

我有一个脚本,它使用以下代码连接到服务器

$sock = new IO::Socket::INET (
                                  PeerAddr => $server,
                                  PeerPort => $port,
                                  Proto => 'tcp',
                                );
但是,我在代理服务器后面,无法使用此脚本。为了克服这个问题,我必须添加代理支持。关于SO的建议是使用
UserAgent
。由于我是一名Perl文盲,我不知道如何用使用
UserAgent
的代码替换此代码。我不想触及代码的其余部分。我可以使用
UserAgent
重新定义
$sock
,以便脚本可以工作文件。我所说的脚本是可用的

我不确定您指的是什么“用户代理”模块。没有名为该的模块。有许多模块的名称中包含UserAgent,但我不知道有哪一个模块适用于您的情况

不管怎样,我想你在找我。我自己从未尝试过,但你应该能够做到:

use IO::Socket::Socks;

my $sock = IO::Socket::Socks->new(
  ProxyAddr   => $hostname_of_your_proxy,
  ProxyPort   => $port_number_your_proxy_listens_on,
  ConnectAddr => $server,
  ConnectPort => $port,
);
剩下的代码保持原样。

我不确定您指的是什么“用户代理”模块。没有名为该的模块。有许多模块的名称中包含UserAgent,但我不知道有哪一个模块适用于您的情况

不管怎样,我想你在找我。我自己从未尝试过,但你应该能够做到:

use IO::Socket::Socks;

my $sock = IO::Socket::Socks->new(
  ProxyAddr   => $hostname_of_your_proxy,
  ProxyPort   => $port_number_your_proxy_listens_on,
  ConnectAddr => $server,
  ConnectPort => $port,
);

剩下的代码保持原样。

我猜你指的是什么?但是从HTTP服务器远程获取一些文件(因为这个LWP::UserAgent实际上更相关)和通过IO::Socket(::INET)提交文件之间有区别,就像在您链接的脚本中一样

您可以使用cjm提供的优秀解决方案,也可以仅使用以下解决方案:

socat TCP4-LISTEN:9999 TCP4:moss.stanford.edu:7690

…其中9999表示本地代理端口。好处:你不必改变莫斯的剧本;坏消息:你必须首先安装soc。

我猜你指的是什么?但是从HTTP服务器远程获取一些文件(因为这个LWP::UserAgent实际上更相关)和通过IO::Socket(::INET)提交文件之间有区别,就像在您链接的脚本中一样

您可以使用cjm提供的优秀解决方案,也可以仅使用以下解决方案:

socat TCP4-LISTEN:9999 TCP4:moss.stanford.edu:7690

…其中9999表示本地代理端口。好处:你不必改变莫斯的剧本;坏处:你必须先安装socat。

你说得对;这可能就是他所说的讨论。但是LWP::UserAgent对于这个目的是无用的,因为他所说的脚本使用的是自定义协议,而不是HTTP或LWP实现的任何其他协议。是的。这是我读到的讨论。我应该提一下。谢谢你。这个周末我会试试。你说得对;这可能就是他所说的讨论。但是LWP::UserAgent对于这个目的是无用的,因为他所说的脚本使用的是自定义协议,而不是HTTP或LWP实现的任何其他协议。是的。这是我读到的讨论。我应该提一下。谢谢你。这个周末我会试试。我需要担心代理身份验证的用户名和密码吗?另外,ping命令不会从moss.stanford.edu获得任何响应。当我运行您的解决方案时,它会显示
无法连接到服务器moss.stanford.edu:非法搜索
如果您的代理需要身份验证,那么是的,您还需要提供
用户名
密码
属性(可能还需要
身份验证类型
,我不确定).我是否需要担心代理身份验证的用户名和密码?另外,ping命令不会从moss.stanford.edu获得任何响应。当我运行您的解决方案时,它会显示
无法连接到服务器moss.stanford.edu:非法搜索
如果您的代理需要身份验证,那么是的,您还需要提供
用户名
密码
属性(可能还需要
身份验证类型
,我不确定).嘿,你现在有什么解决办法吗?嘿,你现在有什么解决办法吗?