php示例中的Socks 4绑定
我想绑定一个socks 4代理服务器来连接另一个代理。本例中,secound代理是http代理。当第一个连接正常连接时,服务器应答被授予,但此时通信已完成。本例中的通信是如何继续的?幸运的是,您得到了“已授予”的回复-我没有从OpenSSH中的SOCKS服务器得到任何回复,它只是关闭了连接 据我所知,SOCKS4描述中,type 2(BIND)请求的答案包含一个端口号和一个IP地址;当连接到达它们时,您的程序将能够读取下一个状态数据包,该状态数据包说明连接。等待连接的时间有限(似乎只有2分钟)。这主要针对FTP客户端-FTP服务器需要与客户端的反向连接,绑定允许传递连接php示例中的Socks 4绑定,php,socks,Php,Socks,我想绑定一个socks 4代理服务器来连接另一个代理。本例中,secound代理是http代理。当第一个连接正常连接时,服务器应答被授予,但此时通信已完成。本例中的通信是如何继续的?幸运的是,您得到了“已授予”的回复-我没有从OpenSSH中的SOCKS服务器得到任何回复,它只是关闭了连接 据我所知,SOCKS4描述中,type 2(BIND)请求的答案包含一个端口号和一个IP地址;当连接到达它们时,您的程序将能够读取下一个状态数据包,该状态数据包说明连接。等待连接的时间有限(似乎只有2分钟)。
如果您想从您的一侧启动连接,请使用类型1(连接)请求。另外,请确保请求中的端口和IP地址是正确的-在您的代码中,它们似乎是80和192.240.30.126。您很幸运,您得到了“已授予”的答复-我在OpenSSH中没有从SOCKS服务器得到任何答复,它只是关闭了连接 据我所知,SOCKS4描述中,type 2(BIND)请求的答案包含一个端口号和一个IP地址;当连接到达它们时,您的程序将能够读取下一个状态数据包,该状态数据包说明连接。等待连接的时间有限(似乎只有2分钟)。这主要针对FTP客户端-FTP服务器需要与客户端的反向连接,绑定允许传递连接 如果您想从您的一侧启动连接,请使用类型1(连接)请求。此外,请确保请求中的端口和IP地址正确-在代码中,它们似乎是80和192.240.30.126
<?php
error_reporting(E_ALL);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false)
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
$result = socket_connect($socket, "92.51.77.126", 1080); // socks ip
if ($result === false)
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
$in = "\x04\x02";
$in .= "\x00\x50"; // http proxy port
$in .= "\xc0\xf0\x2e\x7e"; // http proxy ip address
$in .= "\x00";
socket_write($socket, $in, strlen($in));
sleep(1);
$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
socket_write($socket, $in, strlen($in));
$out = '';
while ($out = socket_read($socket, 2048)) {
echo $out;
}
socket_close($socket);
?>