-1

我正在开发一种从 Web 服务器读取和执行 html/javascript 文档的工具。我使用 RFC2817Socket(因为我通过代理连接)并使用 writeUTFBytes 发送请求并在 HTMLLoader(loadString)中显示页面;到现在为止还挺好。我现在的问题是,有没有办法欺骗用户代理?因此,即使我通过代理连接到网络服务器并发送我的请求,我也希望能够将用户代理更改为我想要的任何内容。

_proxy.writeUTFBytes('GET /test.php HTTP/1.1\r\n');
_proxy.writeUTFBytes('Host: xx.xx.xx.xx:xx\r\n');
_proxy.writeUTFBytes('Connection: Keep-alive\r\n\r\n');
_proxy.flush();

我调用的页面是一个 php 脚本,它返回一堆信息,例如 ip、referer、用户代理……但从未定义用户代理:

echo 'user agent:'.$_SERVER['HTTP_USER_AGENT'];
echo 'ip:'.getenv('HTTP_X_FORWARDED_FOR');

但它返回正确的 IP 地址(代理的)

ip:xxx.xxx.xxx.xxx
user agent:
4

1 回答 1

3

在您的请求标头中添加“User-Agent:”字段:

_proxy.writeUTFBytes('GET /test.php HTTP/1.1\r\n');
_proxy.writeUTFBytes('User-Agent: Mozilla/5.0\r\n');
_proxy.writeUTFBytes('Host: xx.xx.xx.xx:xx\r\n');
_proxy.writeUTFBytes('Connection: Keep-alive\r\n\r\n');
于 2012-07-26T01:51:16.847 回答