C语言实现的socket5代理.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言实现的socket5代理

C 语言写的 Linux 平台 socks5 代理程序 信息来源:邪恶八进制信息安全团队() 前几天 MSN 老上不去,我还以为是公司做了防火墙限制。于是把去年这个时候写 得一个代理程序改了改,拿出来用。结果发现 MSN 是因为微软的问题,鄙视啊…… 因为写得比较急,这个只支持 TCP 代理,UDP 的我没写,因为 MSN 用不上。这个 代码可以随意修改分发,不过最好能给我一份。 这是头文件: ///////////////////////////////////////////////////////////////////// ////////////////////////////////////////// // Socks5 代理头文件,定义协议相关数据包结构 // 版本 0.1,作者 云舒 // 2007 年 1 月 9 日凌晨 1点 15 分,GF 回家已经 11 天了。 // 2008 年 1 月 25 日修改,今年 GF 一直在我身边,哈哈 // // 参考: // /rfc/rfc1928.txt // /rfc/rfc1929.txt ///////////////////////////////////////////////////////////////////// ////////////////////////////////////////// #ifndef SOCKS5_H #define SOCKS5_H #define VERSION 0x05 #define CONNECT 0x01 #define IPV4 0x01 #define DOMAIN 0x03 #define IPV6 0x04 typedef struct _method_select_response // 协商方法服务器响应 { char version; // 服务器支持的 Socks 版本,0x04 或者 0x05 char select_method;// 服务器选择的方法,0x00 为匿名,0x02 为密码认证 } METHOD_SELECT_RESPONSE; typedef struct _method_select_request // 协商方法服务端请求 { char version; // 客户端支持的版本,0x04 或者 0x05 char number_methods; // 客户端支持的方法的数量 char methods[255]; // 客户端支持的方法类型,最多 255 个,0x00 为匿名, 0x02 为密码认证 } METHOD_SELECT_REQUEST; typedef struct _AUTH_RESPONSE // 用户密码认证服务端响应 { char version;// 版本,此处恒定为 0x01 char result;// 服务端认证结果,0x00 为成功,其他均为失败 } AUTH_RESPONSE; typedef struct _AUTH_REQUEST //用户密码认证客户端请求 { char version; // 版本,此处恒定为 0x01 char name_len; // 第三个字段用户名的长度,一个字节,最长为 0xff char name[255]; // 用户名 char pwd_len;// 第四个字段密码的长度,一个字节,最长为 0xff char pwd[255]; // 密码 } AUTH_REQUEST; typedef struct _SOCKS5_RESPONSE // 连接真实主机,Socks 代理服务器响应 { char version; // 服务器支持的 Socks 版本,0x04 或者 0x05 char reply; // 代理服务器连接真实主机的结果,0x00 成功 char reserved; // 保留位,恒定位 0x00 char address_type; // Socks 代理服务器绑定的地址类型,IP V4 为 0x01,IP V6 为 0x04,域名为 0x03 char address_port[1]; // 如果 address_type 为域名,此处第一字节为域名长 度,其后为域名本身,无 0字符结尾,域名后为 Socks 代理服务器绑定端口 }SOCKS5_RESPONSE; typedef struct _SOCKS5_REQUEST // 客户端请求连接真实主机 { char version; // 客户端支持的 Socks 版本,0x04 或者 0x05 char cmd; // 客户端命令,CONNECT 为 0x01,BIND 为 0x02,UDP 为 0x03,一般 为 0x01

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档