none
HttpWebRequest请求url如何绑定host调用指定ip的那台服务器

    问题

  • 比如需要通过代理服务器10.15.11.20 访问 www.baidu.com这个域名下的指定ip 115.239.211.112 这个节点,简单点说就是象在本地电脑上绑定Host来访问,如何通过C#代码实现?

    HttpWebRequest的Host属性设置也无法访问


    2016年7月27日 5:41

答案

  • 域名(www.xx.com))要重定向到哪个IP(200.2.2.2)是由域名服务提供商提供的,不是由客户端浏览器决定的。不过为了加速网站的访问,服务提供商会根据客户端IP的范围,重定向到最靠近当前访问者IP所在的区域的服务器,但这也不是由客户端决定。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月3日 0:06

全部回复

  • 参考代码

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com/Default.aspx");
                System.Net.WebProxy proxy = new WebProxy("208.77.186.166", 80);
                request.Proxy = proxy;
                using (WebResponse response = request.GetResponse())
                {
                    using (TextReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        string line;
                        while ((line = reader.ReadLine()) != null)
                            Console.WriteLine(line);
                    }
                }


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年7月27日 5:57
  • 这样好像不行,你好像没理解我的意识,出局访问使用的是代理服务器10.15.11.20 来访问www.baidu.com这个域名下的指定一个固定ip

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com/Default.aspx");
                System.Net.WebProxy proxy = new WebProxy("208.77.186.166", 80); //这里设置代理服务器ip ,在哪里设置绑定host?
                request.Proxy = proxy;
                using (WebResponse response = request.GetResponse())
                {
                    using (TextReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        string line;
                        while ((line = reader.ReadLine()) != null)
                            Console.WriteLine(line);
                    }
                }

    2016年7月27日 6:07
  • 你好 Aron,

    我建议使用socket 来连接一下看看,使用IPEndPoint 来设置那个host的地址

    string getString = "GET /path/mypage.htm HTTP/1.1\r\nHost: www.mysite.mobi\r\nConnection: Close\r\n\r\n";
    Encoding ASCII = Encoding.ASCII;
    Byte[] byteGetString = ASCII.GetBytes(getString);
    Byte[] receiveByte = new Byte[256];
    Socket socket = null;
    String strPage = null;
    try
    {
        IPEndPoint ip = new IPEndPoint(IPAddress.Parse("10.23.1.93"), 80);
        socket = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
        socket.Connect(ip);
    }
    catch (SocketException ex)
    {
        Console.WriteLine("Source:" + ex.Source);
        Console.WriteLine("Message:" + ex.Message);
    }
    socket.Send(byteGetString, byteGetString.Length, 0);
    Int32 bytes = socket.Receive(receiveByte, receiveByte.Length, 0);
    strPage = strPage + ASCII.GetString(receiveByte, 0, bytes);
    
    while (bytes > 0)
    {
        bytes = socket.Receive(receiveByte, receiveByte.Length, 0);
        strPage = strPage + ASCII.GetString(receiveByte, 0, bytes);
    }
    socket.Close();

    Best regards,

    Cole Wu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年8月2日 8:30
    版主
  • 域名(www.xx.com))要重定向到哪个IP(200.2.2.2)是由域名服务提供商提供的,不是由客户端浏览器决定的。不过为了加速网站的访问,服务提供商会根据客户端IP的范围,重定向到最靠近当前访问者IP所在的区域的服务器,但这也不是由客户端决定。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月3日 0:06