Существует ли 1-строчный метод для получения IP-адреса сервера?
Спасибо
Существует ли 1-строчный метод для получения IP-адреса сервера?
Спасибо
Request.ServerVariables["LOCAL_ADDR"];
Из docs:
Возвращает адрес сервера, на который пришел запрос. Это важно на компьютерах, где может быть несколько 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 AND Результаты 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";
}
}