В интернете есть несколько мест, которые показывают вам, как получить IP-адрес. И многие из них выглядят так:
String strHostName = string.Empty;
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = Dns.GetHostName();
Console.WriteLine("Local Machine's Host Name: " + strHostName);
// Then using host name, get the IP address list..
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
}
Console.ReadLine();
В этом примере я получаю несколько IP-адресов, но меня интересует только тот, который маршрутизатор назначает компьютеру, на котором запущена программа: IP-адрес, который я дал бы кому-то, если он хочет получить доступ к общей папке в мой компьютер, например.
Если я не подключен к сети и подключен к Интернету напрямую через модем без маршрутизатора, то я хотел бы получить ошибку. Как я могу узнать, подключен ли мой компьютер к сети с C #, и если это так, то получить IP-адрес локальной сети.