¨ Any — представляет собой любой из IP-адресов локальной сети,
¨ Broadcast — представляет широковещательный адрес локальной сети (адрес подсети):
¨ Loopback — представляет адрес заглушки (имитации сетевой карты), используемой для отладки приложений,
¨ None — адрес, имитирующий отсутствие в системе сетевого интерфейса.
Console.WriteLine("\n\nSpecial Addresses" + line.Substring(0, 18) +
"\n\n{0,-20}: {1}\n{2,-20}: {3}\n{4,-20}: {5}\n{6,-20}: {7}",
"Broadcast address", IPAddress.Broadcast,
"None address", IPAddress.None,
"Any address", IPAddress.Any,
"Test Parse address", IPAddress.Parse("192.168.1.1"));
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress addr in host.AddressList)
{
IPEndPoint point = new IPEndPoint(addr, 80);
Console.WriteLine("\n{0,-20}: {1}\n{2,-20}: {3}\n{4,-20}: {5}",
"Local IP address", addr,
"Address Family", addr.AddressFamily,
"IP End Point", point);
Console.Write("Address Bytes : ");
foreach (byte b in addr.GetAddressBytes())
Console.Write(b + " | ");
Console.Write("\n\nLoopback address is ");
if (addr.Equals(IPAddress.Loopback))
Console.WriteLine("the same as local address\n");
else
Console.WriteLine("different from local address\n");
if (addr.AddressFamily.ToString() == ProtocolFamily.InterNetworkV6.ToString())
Console.WriteLine("Scope Id: " + addr.ScopeId);
}
if (IPAddress.IsLoopback(IPAddress.Loopback))
Console.WriteLine("{0,-20}: {1}", "Loopback address", IPAddress.Loopback);
else
Console.WriteLine("Error obtaining the loopback address");
short nw = (short)0x1234;
Console.WriteLine("\nTest Byte Order" + line.Substring(0, 16) +
"\n\n{0,-20}: {1:x}\n{2,-20}: {3:x}\n{4,-20}: {5:x}\n",
"Network Byte order", nw,
"Host Byte order", IPAddress.NetworkToHostOrder(nw),
"Back to Network", IPAddress.HostToNetworkOrder(IPAddress.NetworkToHostOrder(nw)));
IPAddress a;
if (IPAddress.TryParse("127.0.0.1", out a))
Console.WriteLine("\nTest TryParse" + line.Substring(0, 14) + "\n{0,-20}: {1}\n",
"Valid IP-address", a);
¨ Класс IPHostEntry ассоциирует DNS-имя (Domain Name System) хост-компьютера с массивом его альтернативных имен (aliases—псевдонимов) и массивом соответствующих им IP-адресов.
¨ Метод NetworkToHostOrder класса IPAddress выполняет ту же роль, что и функция htons в предыдущем примере—меняет порядок байтов (big-endian, little-endian).
¨ Класс IPEndPoint инкапсулирует функциональность пары (сетевой адрес, порт), он содержит те же данные, что и структура sockaddr_in в предыдущем примере.
Internet Control Message Protocol (ICMP)—это множество сообщений, используемых для получения отчетов об ошибках передачи пакетов информации. Существует два типа таких протоколов: версии 4 (IPv4) и версии 6 (IPv6). Свойство AddressFamily класса IPAddress позволяет определить используемый сервером тип протокола. Если он соответствует версии 4 (IPv4), то этому свойству соответствует строка текста: InterNetwork, если включена поддержка версии 6 (IPv6), то строка имеет вид: InterNetworkV6.
При выводе сетевого адреса автоматически срабатывает метод ToString(), который выбирает один из стандартных форматов. Если в системе установлен протокол IPv4, то сетевой адрес получает свой формат (четверка чисел, разделяемых точкой—dotted-quad notation), если установлен протокол IPv6, то используется другой формат (шестнадцатиричные числа, разделяемые двоеточием).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.