• 生活经历的意义,是为了引导你,而非定义你。

  • 外卖,购物,看电影,打车都可以领劵

  • 人生在世最重要的是独立支撑,在物质上独立支撑,在精神上也要独立支撑。在物质上依赖他人就无法自由呼吸,在精神上依赖他人就无法随心所欲。

  • 进了好大学也好,进了好公司也好,如果有活到老学到老的想法,那就有无限的可能性。失去好奇心的那一瞬间,人就死了。读书,不是为了考试,而是为了成为出色的大人。

  • 我常常想,人类得到切割时间的能力,确实堪称是最伟大的发明之一。因为只有这样,大家才不会混混噩噩一顿水地过下去。人,有了停顿的概念,才会有反省的机会。

  • 所有的改变都是一种深思熟虑过后的奇迹, 每瞬间奇迹都在发生。

  • 雨天听雨,调动五感,全身投入,感受那一瞬间。雪天赏雪,夏天感受暑热,冬天体悟刺骨的寒冷。日日是好日,原来是这个意思。

  • 受挫的时候,想到等待着自己的人,和信任自己的人,就绝不能迷失自己。我要一点一点重新来过,慢一些也没关系。我要重新开始。

  • 今天在松松博客的博文发表成功了 :mrgreen:  博文地址

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

博客 James 1年前 (2020-07-17) 1208次浏览 已收录 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做代理(不是搭建服务端)
喜欢 (12)
[老余博客]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

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

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