如何判断DNS或IP是否请求了控制器操作?

时间:2011-01-25 23:31:20

标签: asp.net-mvc-2 c#-4.0

在我的WebDev服务器上,我正在尝试测试控制器的操作是通过其原始IP还是通过其DNS请求的。我已经尝试查看控制器的HttpRequest.Url.HostNameType,但即使我在浏览器中输入本地IP,它似乎也会解析为DNS。有任何想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

该信息在HTTP请求的Host标头中传递,因此您应该能够像这样访问它:

var requestedHost = Request.Headers["Host"];

如果请求是针对IP地址,则应返回该IP地址字符串。否则,它将是他们使用的任何主机名。

答案 1 :(得分:0)

HttpContext.Current.Request.Url.Authority

获取域名系统(DNS)主机名或IP地址以及服务器的端口号。

Uri baseUri = new Uri("http://www.contoso.com:8080/");
Uri myUri = new Uri(baseUri,"shownew.htm?date=today");

Console.WriteLine(myUri.Authority);

输出:www.contoso.com:8080