我有一个设计用来制作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协议版本5开始,并可能从RFC1961GSS-API认证方法开始。
如果这两种方法都不起作用,也许看看socat的来源(它可以充当SOCKS5代理)会有帮助。

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

10-12 17:55