c - c中的socks代理身份验证

标签 c sockets packet socks

我有一个设计用来制作 socks 握手包的功能;但我找不到有关如何填写授权字段的任何信息。认证包是如何格式化的?

void socks_auth(int sd, char *buffer) {
    char *ptrBuff;
    ptrBuff = buffer;
    *(ptrBuff++) = SOCKS_V;
    *(ptrBuff++) = 2;
    *(ptrBuff++) = 0x00;
    *(ptrBuff++) = 0x02;
    send(sd, ptrBuff, ptrBuff - buffer, 0);
    recv(sd, buffer, 2, 0);
    if (buffer[1] == 0xFF) write(STDOUT_FILENO, "not supported\n", 14);
    if (buffer[1] == 0x02) {

    };
}

最佳答案

我建议您从 RFC1928 开始、SOCKS 协议(protocol)版本 5 和可能的 RFC1961 SOCKS 版本 5 的 GSS-API 身份验证方法

如果这些都没有帮助,或许可以查看 socat 的来源,它可以充当 SOCKS5 代理,将会有所帮助。

关于c - c中的socks代理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332006/

相关文章:

c - dma_mmap_coherent 和 remap_pfn_range 有什么区别?

c - 使用 TCP 通过套接字传输文件时卡住

c - 在控制台应用程序中显示像素值的二维数组

java - Android 套接字抛出 UnknownHostException 错误

string - 通过字符串发送二进制数据包有优势吗?

c - Lua - 将表获取到 C,更新它并将其上传回来

C语言编程while循环

c - 避免在 Lua 中复制字符串

c - 如何连续发送和接收数据包?

c# - C# 中提取/插入运算符重载的类似替代方案存在于 C++ 中