Как программно получить IP-адрес локальной сети компьютера?
Использование DNS требует, чтобы visual-c# ваш компьютер был зарегистрирован .net-framework на локальном DNS-сервере, что c#.net не обязательно верно, если dot-net вы находитесь в интрасети, и .net-framework еще менее вероятно, если c# вы находитесь дома у интернет-провайдера. Это csharp также требует сетевого обхода c# — все, чтобы узнать информацию c#-language о вашем собственном компьютере.
Правильный visual-c# способ:
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface adapter in nics)
{
foreach(var x in adapter.GetIPProperties().UnicastAddresses)
{
if (x.Address.AddressFamily == AddressFamily.InterNetwork && x.IsDnsEligible)
{
Console.WriteLine(" IPAddress ........ : {0:x}", x.Address.ToString());
}
}
}
(ОБНОВЛЕНИЕ 31 июля dot-net 2015 г.: исправлены некоторые c#-language проблемы с кодом)
Или для dot-net тех, кто любит просто строчку .net-framework Linq:
NetworkInterface.GetAllNetworkInterfaces()
.SelectMany(adapter=> adapter.GetIPProperties().UnicastAddresses)
.Where(adr=>adr.Address.AddressFamily == AddressFamily.InterNetwork && adr.IsDnsEligible)
.Select (adr => adr.Address.ToString());
c#
.net
.net-3.5
ip-address
Как программно получить IP-адрес локальной сети компьютера?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.