2009-01-08 121 views
7

当用户请求进来时,我可以使用Context.Request.UserHostAddress获取用户的IP地址。如何在运行时获取网站/服务器的IP地址?我有一些报告代码可以被同一台服务器上的多个网站使用,并且每个网站使用不同的IP地址。所以我需要能够在运行时检测网站的IP地址。如何获取asp.net中的服务器/网站IP地址?

回答

6

谢谢亚历克斯,你的回答让我走在正确的道路上。下面是代码做什么,我在寻找:

VB.NET:

System.Net.Dns.GetHostAddresses(Request.Url.Host)(0).ToString() 

System.Net.Dns.GetHostEntry(Request.Url.Host).AddressList(0).ToString() 
+1

这如果您的主机的背后是内容开关不起作用。如果您位于内容切换后面,您需要做些什么才能找到本地服务器站点在IIS中运行的IP地址? – devlord 2009-06-17 01:08:30

14

System.Net.Dns.GetHostAddresses

顺便说一下,你必须通过作为参数名称的主机,所以也许试试这个:

System.Net.Dns.GetHostByAddress(System.Net.IPAddress.Parse(System.Web.HttpContext.Current.Request.UserHostName)).HostName; 

如果一切都失败了,只是做老派的方式:

Response.Write(Request.ServerVariables["LOCAL_ADDR"]); 
2
 string siteName = "Your Site URL"; 
    string tempUrl = siteName.Replace("http://", "").Replace("https://", "").Trim(); 
    string[] SiteURLArr = tempUrl.Split('/'); 
    string SiteURL = SiteURLArr[0]; 
     System.Net.IPAddress[] ip = System.Net.Dns.GetHostAddresses(SiteURL); 
    Response.Write(ip[0]);