zoukankan      html  css  js  c++  java
  • 一个服务器上面配置多个IP ,实现指定IP的域名请求

    //配置多个IP命名
    using System.Net;

    //***************************************************************************

     /// <summary>
            /// 通过设置这个属性,可以在发出连接的时候绑定客户端发出连接所使用的IP地址。 
            /// </summary>
            /// <param name="servicePoint"></param>
            /// <param name="remoteEndPoint"></param>
            /// <param name="retryCount"></param>
            /// <returns></returns>
            public static IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
            {
                return new IPEndPoint(IPAddress.Parse("192.168.1.1") , 0);//端口号
            }
            /// <summary>
            /// 一个服务器上面配置多个IP 固定出网IP
            /// </summary>
            public static void MakeRequest() 
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");
                //设置本地的出口ip和端口
                request.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(BindIPEndPointCallback);
                if (ServicePointManager.DefaultConnectionLimit < 10)
                {
                    ServicePointManager.DefaultConnectionLimit = 10;
                }
                //req.ServicePoint.ConnectionLimit=int.Max;  //允许最大连接数 
    
                HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
                response.ToString(); 
            }

    HttpWebRequest的详细方法二:

     System.Net.HttpWebRequest myRequest = null;
                System.Net.HttpWebResponse myResponse = null;
                Stream reqStream = null;
                Stream resStream = null;
                string signkey = "", url = "";
                string sdateStr = DateTime.Now.AddDays(-6).ToString("yyyyMMdd") + "000001"; 
                try
                {
                    signkey = XH_ChannelKey;//key
                    url = XH_ChannelUrl;    //接口地址
                    url += "fromDate=" + sdateStr;
                    url += "&version=1.4";//版本号
                    url += "&hmac=" + MD5Encrypt(signkey + sdateStr + "1.4");
                    //想服务器端发送请求,获取订单信息      
                    myRequest = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;
                    //--------------------- c#中HttpWebRequest使用Proxy实现指定IP的域名请求 ---------------------------------
                    //需要使用Proxy和其配置 (代理ip)                                  
                    ////System.Net.WebProxy proxy = new System.Net.WebProxy("115.238.128.138", 80);
                    ////myRequest.Proxy = proxy;
                    //------------------------------------------------------
                    myRequest.Timeout = 1000 * 60 * 1;//1分钟超时  1 minutes timeout
                    myRequest.Method = "POST";
                    myResponse = myRequest.GetResponse() as System.Net.HttpWebResponse;
                    Stream myResponseStream = myResponse.GetResponseStream();
                    StreamReader myStreamReader;
                    myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.GetEncoding("utf-8"));
                    //post返回的数据
                    string receiveData = myStreamReader.ReadToEnd();
                    myStreamReader.Close();
                    myResponseStream.Close();
    
                }
                catch (Exception ex)
                {
                    string stacktrace = ex.StackTrace;//获得详细的错误位置
                    string errpoint = stacktrace.Substring(stacktrace.IndexOf("位置"), stacktrace.Length - stacktrace.IndexOf("位置"));
    
                    Common.WriteTextLog("Error","", ex.Message + Environment.NewLine + errpoint);
                }
                finally
                {
                    if (resStream != null)
                    {
                        resStream.Close();
                    }
                    if (reqStream != null)
                    {
                        reqStream.Close();
                    }
                    if (myResponse != null)
                    {
                        myResponse.Close();
                    }
                    if (myRequest != null)
                    {
                        myRequest.Abort();
                    }
                    ////特别留意这句Sleep的调用!!
                    System.Threading.Thread.Sleep(16);
                }             
  • 相关阅读:
    Serialize and Deserialize Binary Tree
    sliding window substring problem汇总贴
    10. Regular Expression Matching
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第七章 链接
    程序员如何写一份合格的简历?(附简历模版)
    9个提高代码运行效率的小技巧你知道几个?
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第六章 存储器层次结构
    24张图7000字详解计算机中的高速缓存
    《深入理解计算机系统》(CSAPP)实验四 —— Attack Lab
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能
  • 原文地址:https://www.cnblogs.com/Fooo/p/3441111.html
Copyright © 2011-2022 走看看