Получить IP-адрес от имени хоста - PullRequest
0 голосов
/ 02 мая 2011

Я хочу получить IP-адрес хоста на моей странице aspx, используя C#, я использую методы класса DNS для их получения.

Локально работало, но когда я развернул решение на IIS7, он вернул только IP-адрес, назначенный провайдером, но мне нужен локальный IP-адрес этой машины.

Есть предложения?

Ответы [ 4 ]

1 голос
/ 08 августа 2012

Вот пример для этого. В этом примере мы можем получить 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/>");
    }
0 голосов
/ 02 мая 2011

При поиске ip-адреса в общедоступном DNS вы получите официальный IP-адрес, передаваемый за пределы.Если используется NAT и вам нужен внутренний адрес, вам необходимо подключиться к DNS-серверу, который содержит внутренние IP-адреса.

0 голосов
/ 02 мая 2011

Вы можете использовать этот метод ...

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;
}
0 голосов
/ 02 мая 2011

Я вполне уверен, что вы не можете получить локальный адрес 192.168.CD локального компьютера, как этот.

Это из-за безопасности и видимости (NAT и т. Д.).

Если вы ищете уникальную идентификацию пользователя.Я бы посмотрел на сессии или куки.

...