⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s5authclient.c

📁 ss5的socks5认扩展认证模块,实现了基本了认证功能,需要的话,可以进行功能增强扩展. 已在Linux下测试通过.
💻 C
字号:
/* * *  File  : S5AuthClient.c *  Author: NieJun *  Mail  : yhniejun@163.com *  Date  : 2008/10/23 * */#include "S5AuthClient.h"char *serv_addr = "127.0.0.1";int  serv_port  = 1898;int main(int argc, char **argv, char **envp){    int    sockfd;    int    conn;        int    send_size = 0;    int    recv_len;    char   *pBuf;    char   name[MAX_NAME_LEN]           = {0};    char   passwd[MAX_PASSWD_LEN]       = {0};    char   recv_buffer[MAX_BUFFER_SIZE] = {0};    char   send_buffer[MAX_BUFFER_SIZE] = {0};    struct sockaddr_in servaddr;    unsigned short auth_opt  = 0;    unsigned char  name_len;    unsigned char  passwd_len;    unsigned char  tail = ';';        pBuf = send_buffer;    if (argc < 3)    {        printf("Please input username and password\n");        exit(1);    }    name_len   = sprintf(name, "%s", argv[1]);    passwd_len = sprintf(passwd, "%s", argv[2]);    //printf("Name [%s], Password [%s]\n", name, passwd);    sockfd = socket(AF_INET, SOCK_STREAM, 0);    memset(&servaddr, 0, sizeof(servaddr));    servaddr.sin_family = AF_INET;    servaddr.sin_port   = htons(serv_port);    inet_pton(AF_INET, serv_addr, &servaddr.sin_addr);    conn = connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));            //printf("Name len [%d], passwd len [%d]\n", name_len, passwd_len);        auth_opt = 0x0101;  //This tell server user login    memcpy(pBuf, &auth_opt, sizeof(unsigned short));    pBuf      += sizeof(unsigned short);    send_size += sizeof(unsigned short);        memcpy(pBuf, &name_len, sizeof(unsigned char));    pBuf      += sizeof(unsigned char);    send_size += sizeof(unsigned char);    memcpy(pBuf, name, name_len);    pBuf      += name_len;    send_size += name_len;    memcpy(pBuf, &passwd_len, sizeof(unsigned char));    pBuf      += sizeof(unsigned char);    send_size += sizeof(unsigned char);    memcpy(pBuf, passwd, passwd_len);    pBuf      += passwd_len;    send_size += passwd_len;    memcpy(pBuf, &tail, sizeof(unsigned char));    send_size += sizeof(unsigned char);    send(sockfd, send_buffer, send_size, 0);    recv_len = recv(sockfd, recv_buffer, MAX_BUFFER_SIZE, 0);    if (recv_len <= 0)    {        printf("Server not response\n");                close(sockfd);        exit(1);        }    recv_buffer[recv_len] = '\0';    close(sockfd);    //printf("Server Res [%s]\n", recv_buffer);        //printf("Send [%s], size [%d], send size [%d]\n", send_buffer, sizeof(send_buffer), send_size);    printf("%s", recv_buffer);        return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -