Как программно получить свой IP адрес на C#

Приветствую всех, сегодня рассмотрим несколько вариантов того как можно получить свой IP адрес. Один из вариантов представленных ниже вы обязательно будите использовать в своих проектах и вам не придется терять время поиски решений, о том как получить свой ip адрес.

И так вариант №1:

private static IPAddress GetIPAddress1()
  {
    return Dns.GetHostByName(Dns.GetHostName()).AddressList.First();
  }

Является устаревшим, однако в консольных вариантах и winform работает.

Вариант №2:

 public static IPAddress GetIPAddress2()
   {
      return Dns.GetHostAddresses(Dns.GetHostName()).Where(address =>
      address.AddressFamily == AddressFamily.InterNetwork).First();
   }

Более усовершенствованы, однако в WPF и UWP не работает.

Вариант №3:

  public static IPAddress GetIPAddress3()
        {
            using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
            {
                socket.Connect("8.8.8.8", 65530);
                IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
                return endPoint.Address;
            }
        }

Работает абсолютно везде. Есть не достаток, сохраняет ip адрес предыдущей сессии, будьте внимательны.

Вариант №4:

async public static void GetIPAddress4()
    {
       IPAddress[] tt =await Dns.GetHostAddressesAsync(Dns.GetHostName());
    }

Работает по UWP отлично.

И так я рассмотрел множество вариантов того как можно легко определить свой локальных ip хоста или своего компьютера.

 

 

Обновлено: 18.02.2019 — 12:12

1 комментарий

Оставить комментарий
  1. Спасибо, 3 вариант отлично работает. Смотрел на разных форумах — там практически одно и тоже и не работает

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.