c - 使用套接字通过C中的SOCKS5代理服务器发送请求

标签 c sockets unix socks

我有一个简单的联网程序,用于发送和响应HTTP请求/响应。但是,如果我想通过SOCKS5代理发送HTTP或其他请求,我将如何处理?我正在使用C Unix套接字。
我可以通过在Linux中创建代理服务器来解决此问题。但是,我的目的是将其发送给我不拥有的代理服务器,以便可以将其转发到目标服务器。我似乎找不到图书馆。我为它找到了一个RFC,已经阅读了https://www.rfc-editor.org/rfc/rfc1928.txt,但是我仍然不是100%不确定如何格式化我的请求。
我是否应该以十六进制的形式发送用于握手的段?如果是这样,我是否可以发送十六进制的0F3504\x0F \x35 \x040x0F3504的字符串?另一个问题是我是否需要在消息中表示header = value,还是SOCKS5服务器通过从发送的消息中查看的字节位置知道我指的是哪个header?
任何清理将不胜感激

最佳答案

前段时间,我写了一个开放源代码的C库,它可以帮助您:https://github.com/brechtsanders/proxysocket
也许您可以使用该库。这很容易,只需用库中的内容替换connect(),其余的就可以保留使用返回的套接字的其余代码。
或者,您也可以看一下代码,看看它是如何完成的。

关于c - 使用套接字通过C中的SOCKS5代理服务器发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62703112/

相关文章:

swift - 从 swift 运行一个 .sh 文件?

c - waitpid 用法错误?

c++ - curl_easy_perform() 失败 : failed FTP upload (the STOR command) error

c - 使用 EOL 模拟 STDIN 输入

c - 如何在 ANSI C 中使用指向两个数组中的冒泡排序值的指针?

java - Oracle JVM 中套接字的速度难以想象

c - 初级内存分配

c# - 如何在 C# 中检测套接字断开连接

java - 单击取消按钮 showInputDialog

bash - 将命令输出的错误消息存储到 shell 变量中