我想在我的aspx
页面上获取主机的 IP 地址C#
,我正在使用 DNS 类方法来获取这些。
它在本地运行良好,但是当我在 IIS7 上部署解决方案时,它只返回 ISP 分配的 IP 地址,但我想要该机器的本地 IP 地址。
有什么建议吗?
这是示例。在此示例中,我们可以获得给定主机名的 IP 地址。
string strHostName = "www.microsoft.com";
// Get DNS entry of specified host name
IPAddress[] addresses = Dns.GetHostEntry(strHostName).AddressList;
// The DNS entry may contains more than one IP addresses.
// Iterate them and display each along with the type of address (AddressFamily).
foreach (IPAddress address in addresses)
{
Response.Write(string.Format("{0} = {1} ({2})", strHostName, address, address.AddressFamily));
Response.Write("<br/><br/>");
}
我相当有信心您无法像这样获取本地机器的本地 192.168.CD 地址。
这是因为安全性和可见性(NAT 等)。
如果您正在寻找唯一标识用户。我会寻找会话或cookies。
在公共 DNS 中查找 IP 地址时,您将获得对外通信的官方 IP 地址。如果使用 NAT 并且您想要内部地址,则必须连接到保存内部 IP 地址的 DNS 服务器。
你可以用这个方法...
public static String GetIP()
{
String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(string.IsNullOrEmpty(ip))
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
return ip;
}