java实现socks5代理功能的客户端,模拟浏览器进行HTTP POST提交

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现socks5代理功能的客户端,模拟浏览器进行HTTP POST提交相关的知识,希望对你有一定的参考价值。

httpClient不支持socks5,但看文档又说支持,一直没看到例子
在网络上找了N久,唯一看到二个像样的,现在发出来,看有没有高手帮我一把。
例子1:
SocketAddress addr = new InetSocketAddress("webcache.mydomain.com", 8080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); // Type.HTTP for HTTP
URL url = new URL("http://java.sun.com/");
URLConnection conn = url.openConnection(proxy);

例子2:
//穿越Socke4代理服务
Socket socket = new Socket("isasrv.hn.cmcc",1080);//代理服务器地址和端口
byte[] datas = 0x04,0x01,0x1f,(byte)0x41,(byte)0xd3,(byte)0x8a,(byte)0xe0,0x35,0x00;//发送的握手字节序列
OutputStream os = socket.getOutputStream();
os.write(datas);
byte[] receive = new byte[8]; //服务端返回的字节
InputStream is = socket.getInputStream();
int count = 0;
if((count = is.read(receive)) > 0) //一定要先读服务器返回的字节序列
//System.out.println(count);
for(byte b : receive)
System.out.println(Integer.toHexString((int)b));


os.write(...);//按照常规方式读写数据吧
receive = new byte[140];
close();
os.close();
socket.close();

SocketAddress addr = new InetSocketAddress(sProxyAddr,Integer.valueOf(sProxyPort));
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
socket = new Socket(proxy);
socket.connect(new InetSocketAddress(ip, port));
参考技术A 额。。。
我就看看。。。记得在学JAVA的时候老师说过。。但我忘了。。
不要意思啊。。。我回去看看书吧。。。找到了就告诉你 ^__^

在 Python 中模拟 SSH 的 SOCKS 代理隧道

【中文标题】在 Python 中模拟 SSH 的 SOCKS 代理隧道【英文标题】:Emulating SSH's SOCKS Proxy Tunnel in Python 【发布时间】:2012-01-25 02:24:04 【问题描述】:

我曾经使用 SSH 服务器和 putty 在 windows 客户端和 linux 服务器之间创建 SOCKS 连接。但是,客户端和服务器之间的防火墙现在能够识别 SSH 数据包并丢弃它们。

我想知道是否可以使用 python 模拟 SSH 隧道的这种行为?对图书馆或阅读有什么建议吗?

提前致谢。

【问题讨论】:

【参考方案1】:

是的,是的,你可以。选择你的毒药。

http://socksipy.sourceforge.net/ http://sourceforge.net/projects/pysocks/ http://code.google.com/p/socksipy-branch/ How can I use a SOCKS 4/5 proxy with urllib2? http://google-api-python-client.googlecode.com/hg/docs/httplib2.socks.html

【讨论】:

【参考方案2】:

您可以考虑将paramiko 用于您的 SSH。这是一个不错的链接ssh-programming-with-paramiko

你也可以试试这个使用 paramiko 的ssh module。

【讨论】:

客户端和服务器之间的防火墙正在丢弃 SSH 数据包。如果我使用 paramiko,我将无法建立连接。不管怎样,谢谢你让我知道这个很酷的模块。我可能会在将来的某个时候使用它。 不正确。不幸的是,Paramiko 不支持 SOCKS5 动态端口转发。如果你需要它,这里是请求添加支持的票:github.com/paramiko/paramiko/issues/955

以上是关于java实现socks5代理功能的客户端,模拟浏览器进行HTTP POST提交的主要内容,如果未能解决你的问题,请参考以下文章

手机浏览器如何设置socks5代理?

Java实现sock5代理服务器

Socks5代理是啥意思?

如何在Linux下配置socks5代理

使用 SSLSocket 的 SOCKS5 代理

苹果代理ip怎么设置