文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发VBVB6中使用Winsock穿越各种代理的实现
精品推荐
特别推荐
·VB表格控件总览与例程分析
·用VB6.0制作画图板
·VB打造超酷个性化菜单(六)
·MSHFlexGrid 控件的应用
·Visual Basic 控件简介
·利用硬盘序列号计算软件注册码
·计算机等级考试二级VB常用算法:排序
·用diskid.dll和disk32.dll获得硬盘序列号
·VB6中使用Winsock穿越各种代理的实现
·在VFP、VB应用程序中激活鼠标功能
·vb基础(打印问题)
·想用就用,VB基础代码
·运用多媒体WAV文件格式二三例
·VB基础学习:编码规范
·VB实现程序的隐形
·使用.NET Framework从VB6中访问事件日志
·怎样把VC++代码转换成VB代码
·如何用VB程序来播放WAV文件
·VB 实用函数集
·用VB制作RM压缩软件
热点TOP10
·VB+Access设计图书管理系统
·DataGrid 控件的使用
·VB设计有语音报时和报警功能的闹钟
·窗体控件大小随窗体大小变化而变化
·Visual Basic 控件简介
·VB中使用DirectX库的简明教程
·串口通讯及其在VB平台下的实现
·用VB跟我学做记事本(很简单哟)
·VB API函数介绍--绘图函数
·用VB6.0制作画图板
·Visual Basic CommonDialog 控件的使用
·VB中使用EXCEL输出
·编写电话拨号程序时一点小技巧
·VB表格控件总览与例程分析
·用VB.net2008编写数据查询窗体
·用VB6.0设计一个打字练习软件
·用diskid.dll和disk32.dll获得硬盘序列号
·VB编程之路-如何让界面美化
·VB经典:操作.ini文件的通用类源代码
·VB网络编程中Winsock的使用

VB6中使用Winsock穿越各种代理的实现

日期:2007年5月18日 作者: 查看:[大字体 中字体 小字体]


  剩下的步骤和无用户名密码校验是一样的,即

  发送 05 01 00 01 + 目的地址(4字节) + 目的端口(2字节),目的地址和端口都是16进制码(不是字符串)。

  例202.103.190.27 - 7201

  则发送的信息为:05 01 00 01 CA 67 BE 1B 1C 21

  (CA=202 67=103 BE=190 1B=27 1C21=7201)

  关于我是怎么把16进制码换成10进制的,请自己看程序

  最后接受服务器返回信息.对于返回信息,只须判断第二字节是否为00.若为 00 连接成功,剩下的操作和直连一样,Winsock可直接用SendData 和 GetData 发送\接受数据.

  socks4的TCP穿透(事实上,socks4只支持TCP穿透)

  无用户名/密码验证

  请看 RFC 说明

  1) CONNECT

  The client connects to the SOCKS server and sends a CONNECT request when

  it wants to establish a connection to an application server. The client

  includes in the request packet the IP address and the port number of the

  destination host, and userid, in the following format.

  +----+----+----+----+----+----+----+----+----+----+....+----+

   VN CD DSTPORT DSTIP USERID NULL

  +----+----+----+----+----+----+----+----+----+----+....+----+

  1 1 2 4 variable 1

  VN is the SOCKS protocol version number and should be 4. CD is the

  SOCKS command code and should be 1 for CONNECT request. NULL is a byte

  of all zero bits.

  我们首先还是连接服务器,然后根据RFC的格式发送数据给服务器.由于是无用户密码验证,我们需要发送9个字节的数据,展开写为 04 01 + 目标端口(2字节) + 目标IP(4字节) + 00,奇怪的是,表中的USERID部分似乎是没有用的,我参照过大量的C++代码,代码中都没有体现该部分.

  至于如何转换目标端口和IP为相应的Byte数组,请自己看示例程序.消息发出后,服务器会返回信息,格式如下:

  +----+----+----+----+----+----+----+----+

   VN CD DSTPORT DSTIP

  +----+----+----+----+----+----+----+----+

  1 1 2 4

  VN is the version of the reply code and should be 0. CD is the result

  code with one of the following values:

  90: request granted -------------- 成功

  91: request rejected or failed -------------- 失败

  92: request rejected becasue SOCKS server cannot connect to

  identd on the client

  93: request rejected because the client program and identd

  report different user-ids

  The remaining fields are ignored.

  根据RFC的说法,代理服务器返回8字节的数据,我们只要判断第二字节是否为90即可,若是90连接成功,否则失败.剩下的操作和直连一样,Winsock可直接用SendData 和 GetData 发送\接受数据.

  HTTP1.1 代理的穿透

  由于RFC 2616过于冗长,加上HTTP代理穿透的步骤比socks简单,这里就不详细说明了,我只给出连接的步骤和发送数据格式.

  第一步仍然是用Winsock去连接代理服务器.第二步为发送请求字符,其格式为:

  无用户名/密码校验 格式:

  "CONNECT" + 空格 + 目标连接地址 + ":" + 目标连接端口 + 空格 + "HTTP/1.1" + Chr(13) + Chr(10) + "Host:" + 空格 + 目标连接地址 + ":" + 目标连接端口 + Chr(13) + Chr(10) + Chr(13) + Chr(10)


上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页 




上一篇:VB中运用反射原理优化程序代码

下一篇:如何在VB中使用导入API

VB6中使用Winsock穿越各种代理的实现 相关文章:
·GHOST使用方法(图解)
·Vista系统使用技巧总结
·为什么iexplore.exe在打开网页时CPU使用会100%?
·如何实现局域网打印机共享
·QQ空间导航代码最新版使用方法
·DataTable控件的使用
·推荐:漂亮的手机上使用的墙纸图片分享下载
·腾讯QQ号码使用完全指南
·DENX U-Boot及Linux使用手册
·揭秘远程破解盗窃QQ密码的各种方法
VB6中使用Winsock穿越各种代理的实现 相关软件:
·黑客视频教程 VMware虚拟机的安装和使用
·黑客视频教程-灰鸽子远控使用教程
·使用GPMC随心所欲管理组策略
·FLASH 8中文使用手册
·Adobe Photoshop CS 2 简体中文使用指南
·18轮大卡车:穿越美国
·Auto CAD R14高级使用教程
·6509为主的各种交换机网络配置实例(图)
·Microsoft Visio 2000 完全使用手册
·cisco各种交换机的镜像配置

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot