社区
C#
帖子详情
C#使用Socks5代理 浏览网页
yisheng163
2007-07-09 06:15:21
求,C#使用Socks5代理 浏览网页的方法,在百度找了好久,没有满意的答案.
C# 使用http代理 浏览网页,用起来很方便.但Socks5代理 就难找啊.
还有,一般的 Socks5 连接时,都要有帐号密码的.
...全文
1350
16
打赏
收藏
C#使用Socks5代理 浏览网页
求,C#使用Socks5代理 浏览网页的方法,在百度找了好久,没有满意的答案. C# 使用http代理 浏览网页,用起来很方便.但Socks5代理 就难找啊. 还有,一般的 Socks5 连接时,都要有帐号密码的.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ximing214
2009-12-18
打赏
举报
回复
没看明白啊 ..
yisheng163
2007-08-19
打赏
举报
回复
哇 神了 !!!
thoughter
2007-08-17
打赏
举报
回复
直到今天才刚有兴致来尝试完成这个程序-_-b
不知楼主还需不需要
这段程序仅做测试
private void button1_Click(object sender, System.EventArgs e)
{
string proxyHost = "127.0.0.1";//代理的ip和端口
int proxyProt = 9050;
byte[] b;
int rl = 0;
string sr;
textBox1.Text="new SockProxy();";
Application.DoEvents();
SockProxy p = new SockProxy();
// {//如果不需要密码验证,略去这段代码
// p.RequireAuthorize = true;
// p.Username = "jerry";
// p.Password = "456321";
// }
textBox1.Text="p.GetSocket(proxyHost, proxyProt);";
Application.DoEvents();
Socket sRH=null;
try
{
sRH = p.GetSocket(proxyHost, proxyProt);
textBox1.Text="p.ConnectProxyServer";
Application.DoEvents();
p.ConnectProxyServer("www.ip138.com", 80, sRH);
textBox1.Text="sRH.Send(b);";
Application.DoEvents();
SSend("GET / HTTP/1.1\r\n",sRH);
SSend("Connection:close\r\n",sRH);
SSend("Host:www.ip138.com\r\n",sRH);
SSend("User-agent:Mozilla/4.0\r\n",sRH);
SSend("Accept-language:zh-cn\r\n",sRH);
SSend("\r\n",sRH);
b = new byte[1024];
textBox1.Text="sRH.Receive(b);";
Application.DoEvents();
rl = sRH.Receive(b);
sr = Encoding.Default.GetString(b, 0, rl);
textBox1.Text=sr;
while(sr.Length>0)
{
Application.DoEvents();
rl = sRH.Receive(b);
sr = Encoding.Default.GetString(b, 0, rl);
textBox1.Text+=sr;
}
}
catch(Exception ex)
{
textBox1.Text=ex.ToString();
return;
}
}
private void SSend(string str,Socket sRH)
{
byte[] b= Encoding.Default.GetBytes(str);
sRH.Send(b);
}
/// <summary>
/// 使用Socks5代理服务器连接网络
/// </summary>
class SockProxy
{
bool m_RequireAuthorize = false;
string m_user = string.Empty;
string m_pass = string.Empty;
/// <summary>
/// default is false
/// </summary>
public bool RequireAuthorize
{
get { return m_RequireAuthorize; }
set { m_RequireAuthorize = value; }
}
public string Username
{
get { return m_pass; }
set { m_pass = value; }
}
public string Password
{
get { return m_user; }
set { m_user = value; }
}
public bool ConnectProxyServer(string strRemoteHost, int iRemotePort, Socket sProxyServer)
{
//构造Socks5代理服务器第一连接头(无用户名密码)
byte[] bySock5Send = new Byte[10];
bySock5Send[0] = 5;
bySock5Send[1] = 1;
bySock5Send[2] = RequireAuthorize ? (byte)2 : (byte)0;
//发送Socks5代理第一次连接信息
sProxyServer.Send(bySock5Send, 3, SocketFlags.None);
byte[] bySock5Receive = new byte[10];
int iRecCount = sProxyServer.Receive(bySock5Receive, bySock5Receive.Length, SocketFlags.None);
//用户验证
if (bySock5Receive[1] == 2 && !RequireAuthorize)
{
throw new Exception("代理服务器需要进行身份确认。");
}
else if (bySock5Receive[1] == 2)
{
//构造Socks5代理服务器第一连接头(无用户名密码)
byte[] bUser = Encoding.Default.GetBytes(Username);
byte[] bPass = Encoding.Default.GetBytes(Password);
int dl = 3 + bUser.Length + bPass.Length;
bySock5Send = new Byte[dl];
bySock5Send[0] = 5;
bySock5Send[1] = (byte)bUser.Length;
Array.Copy(bUser, 0, bySock5Send, 2, bUser.Length);
bySock5Send[2 + bUser.Length] = (byte)bPass.Length;
Array.Copy(bPass, 0, bySock5Send, 3 + bUser.Length, bPass.Length);
//发送Socks5代理第一次连接信息
sProxyServer.Send(bySock5Send, dl, SocketFlags.None);
bySock5Receive = new byte[100];
iRecCount = sProxyServer.Receive(bySock5Receive, bySock5Receive.Length, SocketFlags.None);
}
if (iRecCount < 2)
{
sProxyServer.Close();
throw new Exception("不能获得代理服务器正确响应。");
}
if (bySock5Receive[0] != 5 || (bySock5Receive[1] != 0 && bySock5Receive[1] != 2))
{
sProxyServer.Close();
throw new Exception("代理服务其返回的响应错误。");
}
if (bySock5Receive[1] == 0)
{
bySock5Send[0] = 5;
bySock5Send[1] = 1;
bySock5Send[2] = 0;
bySock5Send[3] = 1;
IPAddress ipAdd = Dns.Resolve(strRemoteHost).AddressList[0];
string strIp = ipAdd.ToString();
string[] strAryTemp = strIp.Split(new char[] { '.' });
bySock5Send[4] = Convert.ToByte(strAryTemp[0]);
bySock5Send[5] = Convert.ToByte(strAryTemp[1]);
bySock5Send[6] = Convert.ToByte(strAryTemp[2]);
bySock5Send[7] = Convert.ToByte(strAryTemp[3]);
bySock5Send[8] = (byte)(iRemotePort / 256);
bySock5Send[9] = (byte)(iRemotePort % 256);
sProxyServer.Send(bySock5Send, bySock5Send.Length, SocketFlags.None);
iRecCount = sProxyServer.Receive(bySock5Receive, bySock5Receive.Length, SocketFlags.None);
if (bySock5Receive[0] != 5 || bySock5Receive[1] != 0)
{
sProxyServer.Close();
throw new Exception("第二次连接Socks5代理返回数据出错。");
}
return true;
}
else
{
if (bySock5Receive[1] == 2)
throw new Exception("代理服务器需要进行身份确认。");
else
return false;
}
}
public Socket GetSocket(string strIpAdd, int iPort)
{
try
{
IPAddress hostadd = IPAddress.Parse(strIpAdd);//Dns.Resolve(strIpAdd).AddressList[0];
IPEndPoint EPhost = new IPEndPoint(hostadd, iPort);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(EPhost);
return s;
}
catch(Exception e)
{
throw(e);
}
}
hm7921936
2007-08-06
打赏
举报
回复
up
hm7921936
2007-08-03
打赏
举报
回复
up
xuyan9132
2007-07-25
打赏
举报
回复
关注,帮顶
zh-wall-e
2007-07-25
打赏
举报
回复
帮顶。。。
天天学习。。好好向上。。。哈哈
yisheng163
2007-07-25
打赏
举报
回复
找了几个 代理 帮我试试吧.各位.谢谢了.
74.86.40.80 1099
74.86.40.83 1099
帐号 test 密码 2546 有效期6个小时
seulty
2007-07-25
打赏
举报
回复
帮顶,UP~
yisheng163
2007-07-24
打赏
举报
回复
试了好久都不行啊.
yisheng163
2007-07-22
打赏
举报
回复
这个一个socks5代理
IP:121.156.57.130
端口: 9001
用户名: tt
密码: 8888
我现在想要用这个代理 连接 GET www.ip138.com这个地址.取回源代码.
调试好久了.都不行啊.
thoughter
2007-07-18
打赏
举报
回复
http://www.xrss.cn/Info/12098.Html
?
不知道有没有用
卧_槽
2007-07-18
打赏
举报
回复
顶一下
yisheng163
2007-07-17
打赏
举报
回复
加分了 哭 . 55555555555
yisheng163
2007-07-17
打赏
举报
回复
555555555 一个星期了.
yisheng163
2007-07-10
打赏
举报
回复
55555555555555555555
没人顶 也没有人看看.
Proxerino:适用于 Windows 8.1 和 Windows Phone 8.1 (PCL) 的 SOCKS v5 服务器
普罗塞里诺 目前正在运行适用于 Windows 和 Windows Phone 8.1 的 SOCKS v5 服务器。 它不是超级稳定,但它允许基本的网络访问。 如果您正在为 WP 或 WinRT 寻找一些基本且免费的
代理
服务器,那么您已经找到了。 随意从源代码中自己编译它,它暂时公开以允许任何人帮助调试。 它是围绕可移植类库 (PCL) 中的 Windows.Networking.Sockets 制作的,因此它可以在所有 WinRT 8.1+ 设备上运行。 运行/调试此应用程序的步骤: 在 Windows Phone 上连接到 WLAN (可选)在 Config.cs 中禁用
代理
服务器
使用
蜂窝数据 构建并运行应用程序 - 服务器自动开始侦听。 观看 VS 输出以获得一些有用的信息 在火狐网络设置中选择SOCKSv5,输入SOCKS服务器地址+默认端口8080
浏览
网页
并注意错误
besthttp2-2.4.0.unitypackage
如果你想要一个可以通过 HTTP/2 支持 REST、WebSocket、Socket.IO、SignalR、SignalR Core、Server-Sent Events(以及更多)的自定义请求并且具有开发者定期更新和出色支持功能的现成插件,那么 BestHTTP/2 就是你需要的! 您可以在其自己的演示页面上试用该资源包,并阅读在线文档。 内含所有源代码! 支持的平台: - WebGL - iOS、Android - UWP、Windows、Mac OS X、Linux 最值得注意的功能是: - HTTP/2 - 自定义您的请求的所有部分: ◦ 方法(GET、HEAD、POST、PUT、DELETE、PATCH) ◦ 标头 ◦ Cookie ◦ 最大重定向计数 ◦ 超时 - 访问服务器发送的每个比特位: ◦ 标头 ◦ 状态代码 ◦ Cookie ◦ 原始内容 ◦ 尾部标头 - 连接和内存池 - 连接和请求超时 - 自动 Cookie 处理 - 支持众多
代理
(Fiddler、Charles 等) - 支持 HTTP 和 Socks
代理
- 自动缓存和缓存验证 - 设置缓存大小和新鲜度 - gzip 内容编码 - 基本和摘要式身份验证 - 多种格式类型(URL 编码和多部分/格式数据) - 自动重定向处理 - 上传和下载进度跟踪 - 下载时访问您的数据 - 您可以
使用
Range 标头恢复下载 - HTTPS - 自定义各种全局设置: ◦ 每个服务器的最大连接数 ◦ 启用/禁用Cookie ◦ 隐私
浏览
模式 ◦ Cookie Jar 大小 ◦ 等等 WebSocket 功能: - 完全符合 RFC - 易于
使用
,“可行”的体验 - 支持扩展: ◦ WebSocket 的压缩扩展 (RFC7692) Socket.IO 功能: - 符合最新的(1.x 和 2.x)Socket.IO 实现 - 自动传输升级和降级 - 二进制数据的发送和接收 - 您可以插入自己喜欢的 Json 解码器 SignalR Core 功能: - 支持最新的 SignalR Core - 支持 MessagePack 编码 - 强类型回调 -
使用
具有后备选项的最快的 Websocket 传输进行长轮询 - 程序包中包含基于标头的身份验证器 - 上传和下载串流 SignalR 功能: - 适用于最新的 SignalR 实现 - 易于
使用
的 API - 中心 - 支持身份验证 - 长时间运行的作业的进度消息 - 自动传输升级/降级 - 您可以插入自己喜欢的 Json 解码器 服务器发送事件功能: - 与最新规格兼容 - 易于
使用
的 API
渗透测试视频教程
本套视频教程主要讲的渗透测试视频教程,从web渗透技术讲到红队c2开发,深入浅出...权限提升,内网渗透与代码审计,更深层次的讲了红队技术,比如CobaltStrike工具
使用
、c2开发、隧道等技术。也讲了移动端app渗透测试。
如何让webbrowser控件能
使用
SOCKS5
代理
浏览
网页
在
c#
、winform、wpf中,如何让
浏览
器控件(webbrowser、webview2、CefSharp)能
使用
socks5
代理
来
浏览
网页
?或者怎么用winform做一个
socks5
代理
。
记录selenium和chrome
使用
socks
代理
打开
网页
以及查看selenium的版本
使用
前,首先打开
socks5
全局
代理
。
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章