从主机名获取IPAddress

时间:2011-05-02 07:19:32

标签: c# asp.net hostname

我想使用aspx在我的C#页面上获取主机的IP地址,我正在使用DNS类方法来获取这些。

它在本地运行良好,但是当我在IIS7上部署解决方案时,它只返回了ISP分配的IP地址,但我想要该机器的本地IP地址。

有什么建议吗?

4 个答案:

答案 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;
}