Как программно получить 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

2022-10-05T09:00:55+00:00