从URL获取端点IP

时间:2012-08-03 10:59:42

标签: c# http ssl

使用TCP客户端进行http发布。我得到的结果不同于例外。 没有HTTP 200 OK ...

这是我的要求:

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Host:www.mywebsite.com
Connection: Keep-Alive
Cache-Control: max-age=0

以下是我的回复:

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://somewhere.com (url changed)
Content-Length: 0
Date: Fri, 03 Aug 2012 10:38:14 GMT

它告诉我重定向到“位置”。 下一个请求应该是http://somewhere.com的GET,并参考www.mywebsite.com?

另一种情况是https链接。它通常与HostEntry返回的IP不同。如何获得IP?在c#中有一种简单的方法吗?

1 个答案:

答案 0 :(得分:4)

是的302意味着网址不在您想要的位置(主机可能已移动它,或者您更喜欢使用www而不是顶点)。因此,只需使用HTTP GET作为新URL。

就IP地址而言,我担心它不是那么简单,你可以为主机名提供多个IP地址

string stackoverflow= "stackoverflow.com"
IPAddress[] addresslist = Dns.GetHostAddresses(stackoverflow);

foreach (IPAddress theaddress in addresslist)
{
   Console.WriteLine(theaddress.ToString());
}

在很多情况下,使用多个IP(主要是负载平衡情况)。