zoukankan      html  css  js  c++  java
  • 关于http请求指定本地ip

    static void Main(string[] args)
    {
         //ssl证书验证问题(没有校验)
         ServicePointManager.ServerCertificateValidationCallback = (sender,  certificate, chain, sslPolicyErrors) => true;
         var hostname = Dns.GetHostName();//获取本地主机名
         var addresses = Dns.GetHostAddresses(hostname);//返回指定主机的 Internet 协议 (IP) 地址
          foreach (var address in addresses)
          {
                    if (address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork) continue;//version 4.0
                    Console.WriteLine(address);
                    var client = new MyWebClient(address);
                    var rlt = client.UploadString("https://t2.ipyy.net/a.aspx", "");
                    Console.WriteLine(rlt);
                    Console.WriteLine("----------------------------------");
            }
                Console.WriteLine("r.ipyy.net");
                var ipr = Dns.GetHostAddresses("r.ipyy.net");
                var rc = new MyWebClient(ipr.First());
                var r = rc.UploadString("https://t2.ipyy.net/a.aspx", "");
                Console.WriteLine(r);
                Console.ReadKey();
    
            }
    public class MyWebClient : WebClient
        {
            private IPAddress ipAddress;
    
            public MyWebClient(IPAddress ipAddress)
            {
                this.ipAddress = ipAddress;
            }
    
            protected override WebRequest GetWebRequest(Uri address)
            {
                WebRequest request = (WebRequest)base.GetWebRequest(address);
    
                ((HttpWebRequest)request).ServicePoint.BindIPEndPointDelegate += (servicePoint, remoteEndPoint, retryCount) =>
                {
                    return new IPEndPoint(ipAddress, 0);
                   // IPAddress ipAddress = IPAddress.Parse("192.168.1.82");
                };
    
                return request;
            }
        }
  • 相关阅读:
    使用Docker容器来源码编译etcd
    PHP开发第一个扩展
    CI框架SESSION重写
    XMLHttpRequest的跨域请求
    PHP哈希表碰撞攻击
    empty、isset、is
    PHP实现4种排序算法
    C实现9种排序算法
    Debian、Ubuntu常用命令大全
    Java中 int和Integer的区别+包装类
  • 原文地址:https://www.cnblogs.com/rengke2002/p/8397553.html
Copyright © 2011-2022 走看看