问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

C# HttpWebRequest 如何实现SOCKET5代理

发布网友 发布时间:2022-04-25 03:25

我来回答

3个回答

热心网友 时间:2022-04-22 15:15

C# 实现Socket5代理协议通讯 这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,直接用不好吗?而是用C#来实现客户端通过一个代理服务器进行Socket5的通讯,这个简单点,一般来说用Socket5就好了,Socket4现在也逐渐淘汰,基本上代理服务器都支持Socket5。
首先我们要了解下Socket5的代理协议是基于TCP协议之上的,从Socket4扩展上来的,用于提供给其他协议例如HTTP、FTP所作用的一套防火墙协议。(这里做点小解释,实际上应该是SOCKS V5协议,但是目前网上都用Socket5这样称呼,目前本文也暂时这样称) 然后下面简单的说下该协议的内容,具体分为两部分:
一部分是基于TCP协议的客户
当一个基于TCP协议的客户端希望与一个只能通过防火墙可以到达的目标(这是由实现所决定的)建立连接,它必须先建立一个与SOCKS服务器上SOCKS 端口的TCP连接。通常这个TCP端口是1080。当连接建立后,客户端进入协议的“握手(negotiation)”过程:认证方式的选择,根据选中的方式进行认证,然后发送转发的要求。SOCKS服务器检查这个要求,根据结果,或建立合适的连接,或拒绝。是不是有点像FTP?差不多。
握手的过程:
客户端连到服务器后,然后就发送请求来协商版本和认证方法: VERNMETHODSMETHODS111 to 255 这个版本的SOCKS协议中,VER字段被设置成X'05'。NMETHODS字段包含了在METHODS字段中出现的方法标示的数目(以字节为单位)。简化就是像服务器发送05 01 00
服务器从这些给定的方法中选择一个并发送一个方法选中的消息回客户端: VERMETHOD11如果选中的消息是X’FF’,这表示客户端所列出的方法列表中没有一个方法被选中,客户端必须关闭连接。
这里我们关注的是 X’00’ 不需要认证和X’02’ 用户名/密码,简化是服务器会返回的前两个字节
会是05 00或者05 02,02的时候进行验证。
验证过程结束后,客户端就发送详细的请求信息。如果协商的方法中有以完整性检查和/或安全性为目的的封装,这些请求必须按照该方法所定义的方式进行封装。
握手完成之后,要进行一个请求连接,这个就是对远程服务器的连接,我们知道当前既然连接的是代理服务器,我们实际上发送数据的对象并不是它,也就是我们要告诉代理服务器去连接真实的某某,现在就是在做这一步了。
SOCKS请求的格式如下: VERCMDRSVATYPDST.ADDRDST.PROT11X’00’1Variable2其中
· VER 协议版本: X’05’
· CMD
· CONNECT:X’01’
· BIND:X’02’
· UDP ASSOCIATE:X’03’
· RSV 保留
· ATYP 后面的地址类型
· IPV4:X’01’
· 域名:X’03’
· IPV6:X’04’'
· DST.ADDR 目的地址
· DST.PORT 以网络字节顺序出现的端口号
SOCKS服务器会根据源地址和目的地址来分析请求,然后根据请求类型返回一个或多个应答。
ATYP字段中描述了地址字段(DST.ADDR,BND.ADDR)所包含的地址类型:
· X'01'
基于IPV4的IP地址,4个字节长
· X'03'
基于域名的地址,地址字段中的第一字节是以字节为单位的该域名的长度,没有结尾的NUL字节。
· X'04'
基于IPV6的IP地址,16个字节长。
Variable表示该域的长度是可变的。
以最常用的IP表示法为例,加入我们的代理服务器地址是10.10.1.254,现在我们要通过代理服务器访问192.168.1.2这个IP地址,这里不要看做局域网地址,因为是通过代理进行访问的,
前期传递了IP对象IPEndPoint destIP;
byte [] data = new byte[10];
data[0]=5;data[1]=1;data[2]=0;data[3]=1;//前4个字节
Array.Copy(destIP.Address.GetAddressBytes(), 0, data, 4, 4); //IP地址
Array.Copy(BitConverter.GetBytes(
IPAddress.HostToNetworkOrder(destIP.Port)), 2, data, 8, 2); //端口号
这个data就是要发送的请求了.
代理服务器这边会根据请求,以如下格式返回: VERREPRSVATYPBND.ADDRBND.PORT11X’00’1Variable2其中:
· VER 协议版本: X’05’
· REP 应答字段:
· X’00’ 成功
· X’01’ 普通的SOCKS服务器请求失败
· X’02’ 现有的规则不允许的连接
· X’03’ 网络不可达
· X’04’ 主机不可达
· X’05’ 连接被拒
· X’06’ TTL超时
· X’07’ 不支持的命令
· X’08’ 不支持的地址类型
· X’09’ – X’FF’ 未定义
· RSV 保留
· ATYP 后面的地址类型
· IPV4:X’01’
· 域名:X’03’
· IPV6:X’04’
· BND.ADDR 服务器绑定的地址
· BND.PORT 以网络字节顺序表示的服务器绑定的段口
标识为RSV的字段必须设为X’00’。返回的信息里面都看到,最重要是第二个域,如果为0,就表示成功,这第二个域对于接收到bytes来说是第1个字节,及data[1].

如果选中的方法中有以完整性检查和/或安全性为目的的封装,这些应答必须按照该方法所定义的方式进行封装。完成这步请求就完成了Socket5整个TCP客户端的连接了,剩下的工作,你就如正常的连接一下向代理服务器发送数据,简单来说这时候你就把代理服务器看成远程你要连接的对象就行了,代理服务器此时就是个透明的网络连接。至于整个C#示例,可以到我的空间下载,这个是博客园文件下载链接。 对于UDP的客户端连接,这里给出协议规范,可以自行进行实验。
在UDP ASSOCIATE应答中由BND.PORT指明了服务器所使用的UDP端口,一个基于UDP协议的客户必须发送数据报至UDP转发服务器的该端口上。如果协商的认证方法中有以完整性、认证和/或安全性为目的的封装,这些数据报必须按照该方法所定义的方式进行封装。每个UDP数据报都有一个UDP请求头在其首部: RSVFRAGATYPDST.ADDRDST.PORTDATA211Variable2Variable在UDP请求头中的字段是:· RSV 保留 X’0000’
· FRAG 当前的分段号
· ATYP 后面的地址类型
· IPV4:X’01’
· 域名:X’03’
· IPV6:X’04’
· DST.ADDR 目的地址
· DST.PORT 以网络字节顺序出现的端口号
· DATA 用户数据
当一个UDP转发服务器转发一个UDP数据报时,不会发送任何通知给客户端;同样,它也将丢弃任何它不能发至远端主机的数据报。当UDP转发服务器从远端服务器收到一个应答的数据报时,必须加上上述UDP请求头,并对数据报进行封装。
UDP转发服务器必须从SOCKS服务器得到期望的客户端IP地址,并将数据报发送到UDP ASSOCIATE应答中给定的端口号。如果数据报从任何IP地址到来,而该IP地址与该特定连接中指定的IP地址不同,那么该数据报会被丢弃。
FRAG字段指明数据报是否是一些分片中的一片。如果SOCKS服务器要实现这个功能,X’00’指明数据报是独立的;其他则越大越是数据报的尾端。介于 1到127之间的值说明了该分片在分片序列里的位置。每个接收者都为这些分片提供一个重组队列和一个重组的计时器。这个重组队列必须在重组计时器超时后重新初始化,并丢弃相应的数据报。或者当一个新到达的数据报有一个比当前在处理的数据报序列中最大的FRAG值要小时,也必须重新初始化从组队列。重组计时器必须小于5秒。只要有可能,应用程序最好不要使用分片。
分片的实现是可选的;如果某实现不支持分片,所有FRAG字段不为0的数据报都必须被丢弃。
一个SOCKS的UDP编程界面(The programming interface for a SOCKS-aware UDP)必须报告当前可用UDP数据报缓存空间小于操作系统提供的实际空间。
· 如果 ATYP是 X’01’ - 10+method_dependent octets smaller
· 如果 ATYP是X’03’ - 262+method_dependent octets smaller
· 如果 ATYP是X’04’ - 20+method_dependent octets smaller
参考网址: http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html

热心网友 时间:2022-04-22 16:33

具体的代码请参考如下内容
http://wenda.io/questions/293920/use-webclient-with-socks-proxy.html
请注意,不支持 WebRequest/WebResponse

热心网友 时间:2022-04-22 18:08

你都说了是http 你怎么用tcp的东西?
C#中 HttpWebRequest如何使用socket5代理来访问网页

首先 得购买空间:服务商会给你一个FTP地址和用户名 密码 其次:找一个FTP软件 flashfxp 输入服务商提供的FTP地址 用户名 密码登陆 上传 或直接打开浏览器 输入FTP地址 输入用户名 密码 把做好的网页 复制 粘贴上去主OK了 另外,虚机团上产品团购,超级便宜 ...

原生ip - StormProxies

StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企业网络中获取的IP地址,这种类型的IP地址通常被认为是更加真实和可靠的代理服务。使用住宅原生IP可以更好地保护您的隐私和匿名性,并且可以提供更快的代理服务速度。2. 高匿名性:StormProxies的代理服务支持高匿名性,这意味着使用其服务的用户可以更好地保护自己的隐私和匿名性。高匿名性代理服务的匿名性更高,可以更好地避免被追踪和识别的…StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...

Socks5代理是什么意思?

4.提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。5.隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。socks和http的区别:SOCKS是一组...

C# ftpwebrequest类的问题

端口,函数中没有直接提供输入的话,一般可以直接输入在URI后 www.domain.com:21 不添加端口号,就使用默认端口号21 连接应该只有一种,只是上传下载文件叫数据连接,平时的切换目录,删除/重命名/移动文件,修改文件属性权限叫控制连接吧 内部就是TCP连接,SOCKET通讯,收发BYTE[]或字符串命令和或数据 ...

HTML5 Web Socket和Web Worker的区别以及使用方法

1、Web Socket是一种协议、本质上和http、tcp一样、协议是用来说明数据是如何传输的,写过一个小的在线聊天使用了socket.io、之后总结这个项目 2、Web Socket的前缀有两种:(1)ws:// 不是加密的、 (2)wss:// 是加密的 3、客户端和服务端进行Web Socket交互的方式也可以理解为“http握手 tcp...

java如何实现消息推送(java向app推送消息)

消息是如何推送的java主要介绍其中的五种实现方式:短轮询、Comet、FlashXMLSocket、Server-sent、WebSocket 1、短轮询 指在特定的的时间间隔(如每10秒),由浏览器对服务器发出HTTPrequest,然后由服务器返回最新的数据给客户端的浏览器。浏览器做处理后进行显示。无论后端此时是否有新的消息产生,都会...

nodejs之http模块

返回当前代理的socket的数组console.log(agent.sockets) ClientRequest类clientRequest类是由http.request返回给我们的,用于管理已经被放入请求队列中的请求,http.request是供给我们向服务端发起请求的,http.request创建请求后会返回给我们ClientRequest类,在请求创建时并不会发起,我们可以通过setHeader,getHeader,removeHead来...

web socket连接出错是怎么回事?

应该先启动server,再用client去连接server,顺序错了不行。如果还连接不上,可以运行以下命令,看看server是否已经开始监听4700端口: netstat -aon -p tcp。WebSocket:WebSocket protocol 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通信(full-duplex)。现很多网站为了实现即时通讯(...

电脑提示socketerror#10060错误如何解决

方法1.验证Web代理连接。1.使用管理权限启动您的计算机。2.从“开始”中打开“运行”应用程序,然后键入inetcpl.cpl。点击OK。3.出现“Internet属性”窗口时,转至“连接”选项卡。有去Lan设置。4.显示局域网(LAN)设置窗口。找到使用代理您的Lan框,并取消选择此选项。点击OK。套接字错误10060应该被...

如何用Java实现Web服务器

根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:(1) 创建ServerSocket类对象,监听端口8080.这是为了区别于HTTP的标准TCP/IP端口80而取的;(2) 等待、接受客户机连接到端口8080,得到与客户机连接的socket;(3) 创建与socket字相关联的输入流instream和输出流outstream;(4)...

"http"代表什么意思!

1.建立连接 连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。 2.发送请求 打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。 HTTP/1.0 请求消息的...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
...职业学院附属中专学校招生简章公办还是民办电话收费标准 芜湖职业学校中专附属中专学校是公办还是民办学校? dell 型号inspiron 5520开机出现以下英文 电脑开机后出现remove disks or other media为什么? ...出现这样的提示: eboot and select proper boot device ...dmipooldatabootfromcd:diskbootfailureinsersystemdiskandpresse... 电脑开机显示: BOOT FROM CD/DVD DISK BOOT FAILURE, INSER ...从启时出现:Disk boot failure,inser systen disk and press enter... 台式电脑英文D工SKBOOTFAILURE,INSER丅S丫STEMD工SKANDPRESSEN丅_百度... 英雄联盟,连续死很多次但拿助攻也会不会让这个人值钱 HTTP HTTPS SOCKS5到底哪个好? SOCKS5代理;HTTP代理;使用浏览器设置~~~是什么意思..? 出海捕鱼需要办理哪些证件? http,https,socks4,socks5 有什么区别,如果我不想让别人查到我的真实IP,最好使用那一种呢 HTTP,SOCKS4,SOCKS5中文解释? 代理服务器 Http代理与Socks5有什么区别 HTTP代理和SOCKS5代理 socks4/5和http代理有什么区别? socks5代理和http代理!哪个更有隐蔽性!拜托各位大神 请问是用代理服务器犯法吗? HTTP和SOCKS5代理有什么不同? 有一款游戏是用鞭炮炸鱼,然后鱼就会飘起来,不是超级炸弹捕鱼 http代理和SOCKS5代理的区别? 美少女战士演员表 HTTP和Socks5各自代表什么意思? hebe的真正名子叫什麽 SOCKS4、SOCKS5和HTTP代理,这几种网络代理方式有什么区别? watch的意思 400全国免费电话,什么样的企业需要呢? SOCKS5代理和HTTP代理哪个更好? 谁来帮忙翻译这首 If I Ain't Got You socket可以验证http类型的代理服务器ip吗? 将socket5代理需求转为http代理 QQ游戏怎么设不同的HTTP代理还是socks5代理啊 如图插座三角插头为什么插不进去? 三脚插头和两脚插头比有什么优点? 无锡灭鼠公司哪家好? 无锡灭鼠选哪家?哪家好? 家里的三角插座里的第三个插孔为什么都没有接线的,那个不是应该接地线吗? 无锡有哪些灭鼠公司啊?我家里发现有老鼠诶!好恐怖,会不会传染病啥的!也不知道从哪里爬出来的。求救啊~ 无锡做虫害哪一家比较好呢,尤其灭鼠方面做的好的? 排插插头两脚的和三脚的有什么区别 家里怎样灭老鼠,无锡灭鼠公司 无锡哪家灭鼠公司专业? 无锡威霸有害生物防治有限公司怎么样? 无锡海恒有害生物防治有限公司怎么样? 国内钢笔品牌除了英雄以外还有哪些好钢笔品牌? 无锡清波有害生物防治有限公司怎么样? 无锡市欣亚欣环境科技有限公司怎么样? 急!!无锡灭鼠药在哪里购买? 无锡典雅环保科技有限公司怎么样?
  • 焦点

最新推荐

猜你喜欢

热门推荐