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

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

Спасибо

Ответ 1

Request.ServerVariables["LOCAL_ADDR"];

Из docs:

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

Это отличается от удаленных адресов, относящихся к клиентской машине.

Ответ 2

От поиска в сети я нашел следующий код: (я не смог найти там какой-либо один метод)

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

Ответ 3

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

Ответ 4

Этот метод вернет ваш общедоступный 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";
        }

    }