我想使用aspx
在我的C#
页面上获取主机的IP地址,我正在使用DNS类方法来获取这些。
它在本地运行良好,但是当我在IIS7上部署解决方案时,它只返回了ISP分配的IP地址,但我想要该机器的本地IP地址。
有什么建议吗?
答案 0 :(得分:1)
以下是此示例。 在这个例子中,我们可以获得给定主机名的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/>");
}
答案 1 :(得分:0)
我非常有信心你不能像这样获得本地机器的本地192.168.C.D地址。
这是因为安全性和可视性(NAT等)。
如果您希望唯一标识用户。我会看会话或饼干。
答案 2 :(得分:0)
在公共DNS中查找IP地址时,您将获得向外通信的官方IP地址。如果使用NAT并且您需要内部地址,则必须连接到包含内部IP地址的DNS服务器。
答案 3 :(得分:0)
你可以使用这种方法...
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;
}