.NET 使用sock5做代理(不是搭建服务端)

博客 James 3周前 (07-17) 72次浏览 已收录 0个评论 扫描二维码

在日常开发中经常会遇到这些需求,爬取数据,都知道现在通常用python爬取是很方便的,但是免不了还有很多伙伴在用NET来爬取,在爬取数据的时候我们知道需要使用代理服务器,如果不用代理,你的IP很有可能被封,那么微软在.NET Framework得System.Net名称空间里给我们提供了一个WebProxy类,不过这是仅仅只是一个http代理,这种代理使用起来受限太多,很不方便。如果我们需要访问更多的网络服务,socks代理是一个理想的选择。下面是C#编写的一个使用匿名socks5代理的示例demo:

1.程序需要引入NuGet  HttpToSocks5Proxy  这个是最为关键的一部

using MihaZupan;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            //比如这个是sock5代理的IP和端口,我随便写的,你们换成自己的就行(针对的是sock5不加密的情况下写法)
            var socks5Hostname = "192.168.1.129";
            int socks5Port = 1108;
            Console.WriteLine("====================================================");
            Console.WriteLine("sock5代理IP:"+ socks5Hostname + ":"+ socks5Port + "");
            Console.WriteLine("====================================================");
            HttpToSocks5Proxy proxy = new HttpToSocks5Proxy(socks5Hostname, socks5Port);
            HttpClientHandler handler = new HttpClientHandler() { Proxy = proxy };
            HttpClient httpClient = new HttpClient(handler, true);

            Task result = httpClient.GetStringAsync("https://www.xjqyc.cn");
            Console.WriteLine("result:" + result.Result);
            Console.ReadKey();
        }
       
        private static string GetTimeStamp()
        {
            TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return Convert.ToInt64(ts.TotalSeconds).ToString();
        }
    }
}

代码运行截图

.NET 使用sock5做代理(不是搭建服务端)


老余博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:.NET 使用sock5做代理(不是搭建服务端)
喜欢 (4)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址