Книга: C# для профессионалов. Том II

Классы .NET для адресов IP

Классы .NET для адресов IP

.NET предоставляет ряд классов, которые могут помочь в процессе поиска адресов IP и при получении информации о компьютерах-хостах.

IPAddress

Класс IPAddress представляет адрес IP, который доступен как свойство Address и может быть преобразован в десятичный формат с точками с помощью ToString(). IPAddress реализует также статический метод Parse(), эффективно выполняя обратное преобразование в ToString() — из десятичной строки с точками в (целочисленный) адрес IP.

IPAddress ipAddress = IPAddress.Parse("234.56.78.9");
int address = ipAddress.Address;        // address будет присвоено 37105130
string ipString = ipAddress.ToString(); // ipString будет присвоен
                                        // текст "234.45.54.2"
IPAddress
предоставляет также ряд константных статических полей, которые возвращают известные специальные адреса IP, имеющие специальные значения.

//следующая строка задает обратную петлю как "127.0.0.1"
// адрес обратной петли указывает локальный хост
string loopback = IPAddress.Loopback.ToString();
// следующая строка задает адрес широковещания как "255.255.255.255"
// адрес широковещания используется для отправки сообщения
// всем машинам в локальной сети
String broadcast = IPAddress.Broadcast.ToString();

IPHostEntry

Класс IPHostEntry инкапсулирует информацию, связанную с определенным хостом (компьютером). Он делает доступным имя хоста с помощью свойства HostName (которое возвращает строку) и все адреса IP с помощью свойства AddressList, которое возвращает массив объектов IPAddress. Класс IPHostEntry будет показан в действии в примере DNSResolver ниже.

DNS

Класс DNS является классом, который может общаться с используемым по умолчанию сервером DNS, чтобы извлечь адреса IP. Двумя важными (статическими) методами здесь являются Resolve(), использующий сервер DNS для получения данных хоста с заданным именем хоста, и GetHostByAddress(), который также посылает назад эти данные, но в этот раз с помощью адреса. Оба метода возвращают объект IPHostEntry.

HostEntry wroxHost = Dns.Resolve("www.microsoft.com");
HostEntry wroxHostCopy = Dns.GetHostByAddress("234.234.234.234");

В этом коде оба объекта HostEntry будут содержать данные серверов Microsoft.com.

Класс Dns отличается от классов IPAddress и IPHostEntry тем, что инкапсулирует возможность реально общаться с серверами для получения информации. Классы IPAddress и IPHostEntry, напротив, мало чем отличаются от структур данных, которые имеют подходящие свойства, позволяющие получить доступ к содержащимся в них данным.

Оглавление книги


Генерация: 1.523. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз