Как получить 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";
}
}