Как получить IP-адрес сервера?

Есть ли 1-строчный метод для получения IP-адреса сервера?

Спасибо

4 ответа

Решение
Request.ServerVariables["LOCAL_ADDR"];

Из документов:

Возвращает адрес сервера, на который поступил запрос. Это важно на компьютерах, где к компьютеру может быть привязано несколько IP-адресов, и вы хотите выяснить, по какому адресу был использован запрос.

Это отличается от удаленных адресов, которые относятся к клиентскому компьютеру.

При поиске в сети я нашел следующий код: (я не смог найти там однострочный метод)

string myHost = System.Net.Dns.GetHostName();

// Show the hostname 

MessageBox.Show(myHost);

// Get the IP from the host name

string myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[index].ToString();

// Show the IP 

MessageBox.Show(myIP);

-> где index - это индекс вашего IP-адреса хоста (т.е. сетевого подключения).

Код от: http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html

Как и другие опубликовали, System.Net.Dns.GetHostEntry это путь Когда вы получаете доступ к AddressList собственности, вы захотите взять AddressFamily свойство во внимание, так как он может возвращать результаты как IPv4, так и IPv6.

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

public static string Getpublicip()
    {
        try
        {
            string externalIP = "";
            var request = (HttpWebRequest)WebRequest.Create("http://icanhazip.com.ipaddress.com/");
            var response = (HttpWebResponse)request.GetResponse();
            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

            externalIP = new WebClient().DownloadString("http://icanhazip.com");
            return externalIP;

        }
        catch (Exception e)
        {

            return "null";
        }

    }
Другие вопросы по тегам