Получение всех ip-адресов хоста

Компьютерные сети

Многоуровневая архитектура Интернета

Получение адреса хоста

Как только организация получает блок адресов от своего Интернет-провайдера, она может назначать индивидуальные IP-адреса интерфейсам своих хостов и маршрутизаторов. Для интерфейсов маршрутизаторов системный администратор вручную задает IP-адреса (часто удаленным образом с помощью сетевой управляющей программы). Хосту IP-адрес может быть выделен двумя способами.

□ Ручное конфигурирование. Системный администратор вручную указывает IP-адрес хоста (как правило, в файле).
□ Использование протокола DHCP (RFC 2131). Протокол DHCP (Dynamic Host Configuration Protocol — протокол динамической конфигурации хоста) позволяет хосту автоматически получить IP-адрес, а также дополнительную информацию, такую как адрес ближайшего маршрутизатора и адрес DNS-сервера.

Благодаря своей способности автоматизировать настройку сетевых параметров соединения хоста и сети протокол DHCP часто называют самонастраивающимся (plug-and-play) протоколом. Эта способность делает его очень привлекательным для сетевых администраторов, которым в противном случае пришлось бы выполнять всю эту работу вручную! Протокол DHCP также широко применяется в региональных сетях доступа к Интернету и беспроводных локальных сетях, в которых хосты редко подключаются к сети и редко от нее отключаются.

Сетевой администратор может сконфигурировать протокол DHCP таким образом, чтобы у определенных хостов IP-адреса были постоянными, то есть при каждом подключении к сети хосту будет выделяться один и тот же адрес. Однако у многих организаций и локальных Интернет-провайдеров недостаточно IP-адресов для всех их хостов. В этом случае протокол DHCP позволяет назначать каждому соединившемуся хосту временный IP-адрес. В качестве примера рассмотрим регионального Интернет-провайдера, у которого 2000 клиентов, но одновременно к Интернету подключается не более 400. Для поддержки всех 2000 клиентов Интернет-провайдеру не нужен блок из 2000 адресов. Используя DHCP-сервер, динамически выделяющий адреса, Интернет-провайдер может обойтись блоком из 512 адресов (например, блоком 200.23.30.0/23). Когда хосты подключаются к сети или отключаются от сети, DHCP-сервер обновляет свой список доступных IP-адресов. Каждый раз, когда хост подключается к Интернету, DHCP-сервер выделяет ему произвольный адрес из текущего пула доступных адресов. Каждый раз, когда хост отсоединяется от Интернета, его адрес возвращается в пул.

Еще одна важная причина, по которой протокол DHCP получил широкое распространение, связана с мобильными компьютерами. Рассмотрим, например, студента, переносящего свой лэптоп из комнаты в общежитии в библиотеку или в учебный класс. Скорее всего, в каждом новом помещении студент будет подключаться к новой (в смысле адресации; см. рис. 4.15) сети, и, таким образом, ему каждый раз будет требоваться новый IP-адрес. Протокол DHCP идеально подходит для этой ситуации, так как многие пользователи подключаются к Интернету и отключаются от Интернета в разных местах, и адреса нужны им только на ограниченное время. Мы рассмотрим протокол DHCP подробнее в конце этого раздела.

Уточнения, корректировки и обсуждения статьи «Получение адреса хоста» — под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Пример расчета количества хостов и подсетей на основе IP-адреса и маски

IP-адреса используются для идентификации устройств в сети. Для взаимодействия c другими устройствами по сети IP-адрес должен быть назначен каждому сетевому устройству (в том числе компьютерам, серверам, маршрутизаторам, принтерам и т.д.). Такие устройства в сети называют хостами.
С помощью маски подсети определяется максимально возможное число хостов в конкретной сети. Помимо этого, маски подсети позволяют разделить одну сеть на несколько подсетей.

Знакомство с IP-адресами
Одна часть IP-адреса представляет собой номер сети, другая – идентификатор хоста. Точно так же, как у разных домов на одной улице в адресе присутствует одно и то же название улицы, у хостов в сети в адресе имеется общий номер сети. И точно так же, как у различных домов имеется собственный номер дома, у каждого хоста в сети имеется собственный уникальный идентификационный номер – идентификатор хоста. Номер сети используется маршрутизаторами (роутерами, интернет-центрами) для передачи пакетов в нужные сети, тогда как идентификатор хоста определяет конкретное устройство в этой сети, которому должны быть доставлены пакеты.

Структура
IP-адрес состоит из четырех частей, записанных в виде десятичных чисел с точками (например, 192.168.1.1). Каждую из этих четырех частей называют октетом. Октет представляет собой восемь двоичных цифр (например, 11000000, или 192 в десятичном виде).
Таким образом, каждый октет может принимать в двоичном виде значения от 00000000 до 11111111, или от 0 до 255 в десятичном виде.
На следующем рисунке показан пример IP-адреса, в котором первые три октета (192.168.1) представляют собой номер сети, а четвертый октет (16) – идентификатор хоста.

Рисунок 1. Номер сети и идентификатор хоста

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

Частные IP-адреса
У каждого хоста в сети Интернет должен быть уникальный адрес. Если ваши сети изолированы от Интернета (например, связывают два филиала), для хостов без проблем можно использовать любые IP-адреса. Однако, уполномоченной организацией по распределению нумерации в сети Интернет (IANA) специально для частных сетей зарезервированы следующие три блока IP-адресов:

  • 10.0.0.0 — 10.255.255.255
  • 172.16.0.0 — 172.31.255.255
  • 192.168.0.0 — 192.168.255.255

IP-адреса указанных частный подсетей иногда называют «серыми».
IP-адреса можно получить через IANA, у своего провайдера услуг Интернет или самостоятельно назначить из диапазона адресов для частных сетей.

Маски подсети
Маска подсети используется для определения того, какие биты являются частью номера сети, а какие – частью идентификатора хоста (для этого применяется логическая операция конъюнкции – «И»).
Маска подсети включает в себя 32 бита. Если бит в маске подсети равен «1», то соответствующий бит IP-адреса является частью номера сети. Если бит в маске подсети равен «0», то соответствующий бит IP-адреса является частью идентификатора хоста.

Таблица 1. Пример выделения номера сети и идентификатора хоста в IP-адресе

1-ый октет: (192) 2-ой октет: (168) 3-ий октет: (1) 4-ый октет: (2)
IP-адрес (двоичный) 11000000 10101000 00000001 00000010
Маска подсети (двоичная) 11111111 11111111 11111111 00000000
Номер сети 11000000 10101000 00000001
Идентификатор хоста 00000010

Маски подсети всегда состоят из серии последовательных единиц, начиная с самого левого бита маски, за которой следует серия последовательных нулей, составляющих в общей сложности 32 бита.

Маску подсети можно определить как количество бит в адресе, представляющих номер сети (количество бит со значением «1»). Например, «8-битной маской» называют маску, в которой 8 бит – единичные, а остальные 24 бита – нулевые.
Маски подсети записываются в формате десятичных чисел с точками, как и IP-адреса. В следующих примерах показаны двоичная и десятичная запись 8-битной, 16-битной, 24-битной и 29-битной масок подсети.

Таблица 2. Маски подсети

Двоичная
4-ый октет:

Двоичная
1-ый октет:
Двоичная
2-ой октет:
Двоичная
3-ий октет:
Десятичная
8-битная
маска
11111111 00000000 00000000 00000000 255.0.0.0
16-битная
маска
11111111 11111111 00000000 00000000 255.255.0.0
24-битная
маска
11111111 11111111 11111111 00000000 255.255.255.0
29-битная
маска
11111111 11111111 11111111 11111000 255.255.255.248

Размер сети
Количество разрядов в номере сети определяет максимальное количество хостов, которые могут находиться в такой сети. Чем больше бит в номере сети, тем меньше бит остается на идентификатор хоста в адресе.
IP-адрес с идентификатором хоста из всех нулей представляет собой IP-адрес сети (192.168.1.0 с 24-битной маской подсети, например). IP-адрес с идентификатором хоста из всех единиц представляет собой широковещательный адрес данной сети (192.168.1.255 с 24-битной маской подсети, например).
Так как такие два IP-адреса не могут использоваться в качестве идентификаторов отдельных хостов, максимально возможное количество хостов в сети вычисляется следующим образом:

Таблица 3. Максимально возможное число хостов

Маска подсети

Размер идентификатора хоста

Максимальное
количество хостов
8 бит 255.0.0.0 24 бит 2 24 – 2 16777214 16 бит 255.255.0.0 16 бит 2 16 – 2 65534 24 бит 255.255.255.0 8 бит 2 8 – 2 254 29 бит 255.255.255.248 3 бит 2 3 – 2 6

Формат записи
Поскольку маска всегда является последовательностью единиц слева, дополняемой серией нулей до 32 бит, можно просто указывать количество единиц, а не записывать значение каждого октета. Обычно это записывается как «/» после адреса и количество единичных бит в маске.

Например, адрес 192.1.1.0 /25 представляет собой адрес 192.1.1.0 с маской 255.255.255.128. Некоторые возможные маски подсети в обоих форматах показаны в следующей таблице.

Таблица 4. Альтернативный формат записи маски подсети

Маска подсети Альтернативный
формат записи
Последний октет
(в двоичном виде)
Последний октет
(в десятичном виде)
255.255.255.0 /24 0000 0000
255.255.255.128 /25 1000 0000 128
255.255.255.192 /26 1100 0000 192
255.255.255.224 /27 1110 0000 224
255.255.255.240 /28 1111 0000 240
255.255.255.248 /29 1111 1000 248
255.255.255.252 /30 1111 1100 252

Формирование подсетей
С помощью подсетей одну сеть можно разделить на несколько. В приведенном ниже примере администратор сети создает две подсети, чтобы изолировать группу серверов от остальных устройств в целях безопасности.
В этом примере сеть компании имеет адрес 192.168.1.0. Первые три октета адреса (192.168.1) представляют собой номер сети, а оставшийся октет – идентификатор хоста, что позволяет использовать в сети максимум 2 8 – 2 = 254 хостов.
Сеть компании до ее деления на подсети показана на следующем рисунке.

Рисунок 2. Пример формирования подсетей: до разделения на подсети

Чтобы разделить сеть 192.168.1.0 на две отдельные подсети, можно «позаимствовать» один бит из идентификатора хоста. В этом случае маска подсети станет 25-битной (255.255.255.128 или /25).

«Одолженный» бит идентификатора хоста может быть либо нулем, либо единицей, что дает нам две подсети: 192.168.1.0 /25 и 192.168.1.128 /25.
Сеть компании после ее деления на подсети показана на следующем рисунке. Теперь она включает в себя две подсети, A и B.

Рисунок 3. Пример формирования подсетей: после деления на подсети

В 25-битной подсети на идентификатор хоста выделяется 7 бит, поэтому в каждой подсети может быть максимум 2 7 – 2 = 126 хостов (идентификатор хоста из всех нулей – это сама подсеть, а из всех единиц – широковещательный адрес для подсети).
Адрес 192.168.1.0 с маской 255.255.255.128 является адресом подсети А, а 192.168.1.127 с маской 255.255.255.128 является ее широковещательным адресом. Таким образом, наименьший IP-адрес, который может быть закреплен за действительным хостом в подсети А – это 192.168.1.1, а наибольший – 192.168.1.126.
Аналогичным образом диапазон идентификаторов хоста для подсети В составляет от 192.168.1.129 до 192.168.1.254.

Пример: четыре подсети
В предыдущем примере было показано использование 25-битной маски подсети для разделения 24-битного адреса на две подсети. Аналогичным образом для разделения 24-битного адреса на четыре подсети потребуется «одолжить» два бита идентификатора хоста, чтобы получить четыре возможные комбинации (00, 01, 10 и 11). Маска подсети состоит из 26 бит (11111111.11111111.11111111.11000000), то есть 255.255.255.192.

Каждая подсеть содержит 6 битов идентификатора хоста, что в сумме дает 2 6 – 2 = 62 хоста для каждой подсети (идентификатор хоста из всех нулей – это сама подсеть, а из всех единиц – широковещательный адрес для подсети).

Таблица 5. Подсеть 1

IP-адрес/маска подсети Номер сети Значение
последнего октета
IP-адрес (десятичный) 192.168.1.
IP-адрес (двоичный) 11000000.10101000.00000001. 00000000
Маска подсети (двоичная) 11111111.11111111.11111111. 11000000
Адрес подсети
192.168.1.0
Наименьший идентификатор хоста: 192.168.1.1
Широковещательный адрес
192.168.1.63
Наибольший идентификатор хоста: 192.168.1.62

Таблица 6. Подсеть 2

IP-адрес/маска подсети Номер сети Значение
последнего октета
IP-адрес 192.168.1. 64
IP-адрес (двоичный) 11000000.10101000.00000001. 01000000
Маска подсети (двоичная) 11111111.11111111.11111111. 11000000
Адрес подсети
192.168.1.64
Наименьший идентификатор хоста: 192.168.1.65
Широковещательный адрес
192.168.1.127
Наибольший идентификатор хоста: 192.168.1.126

Таблица 7. Подсеть 3

IP-адрес/маска подсети Номер сети Значение
последнего октета
IP-адрес 192.168.1. 128
IP-адрес (двоичный) 11000000.10101000.00000001. 10000000
Маска подсети (двоичная) 11111111.11111111.11111111. 11000000
Адрес подсети
192.168.1.128
Наименьший идентификатор хоста: 192.168.1.129
Широковещательный адрес
192.168.1.191
Наибольший идентификатор хоста: 192.168.1.190

Таблица 8. Подсеть 4

IP-адрес/маска подсети Номер сети Значение
последнего октета
IP-адрес 192.168.1. 192
IP-адрес (двоичный) 11000000.10101000.00000001. 11000000
Маска подсети (двоичная) 11111111.11111111.11111111. 11000000
Адрес подсети
192.168.1.192
Наименьший идентификатор хоста: 192.168.1.193
Широковещательный адрес
192.168.1.255
Наибольший идентификатор хоста: 192.168.1.254

Пример: восемь подсетей
Аналогичным образом для создания восьми подсетей используется 27-битная маска (000, 001, 010, 011, 100, 101, 110 и 111).
Значения последнего октета IP-адреса для каждой подсети показаны в следующей таблице.

Таблица 9. Восемь подсетей

Подсеть Адрес подсети Первый
адрес
Последний
адрес
Широковещательный
адрес
1 1 30 31
2 32 33 62 63
3 64 65 94 95
4 96 97 126 127
5 128 129 158 159
6 160 161 190 191
7 192 193 222 223
8 224 225 254 255

Планирование подсетей
Сводная информация по планированию подсетей для сети с 24-битным номером сети приводится в следующей таблице.
Таблица 10. Планирование подсетей для сети с 24-битным номером

Количество «одолженных» битов
идентификатора хоста
Маска подсети Количество
подсетей
Количество
хостов в подсети
1 255.255.255.128 (/25) 2 126
2 255.255.255.192 (/26) 4 62
3 255.255.255.224 (/27) 8 30
4 255.255.255.240 (/28) 16 14
5 255.255.255.248 (/29) 32 6
6 255.255.255.252 (/30) 64 2
7 255.255.255.254 (/31) 128 1

Пример расчета количества подсетей и хостов в подсети на основе IP-адреса и маски подсети

Приведем пример расчета количества подсетей и хостов для сети 59.124.163.151/27.

/27 — префикс сети или сетевая маска
В формате двоичных чисел 11111111 11111111 11111111 11100000
В формате десятичных чисел 255.255.255.224

В четвертом поле (последний октет) 11100000 первые 3 бита определяют число подсетей, в нашем примере 2 3 = 8.
В четвертом поле (последний октет) 11100000 последие 5 бит определяют число хостов подсети, в нашем примере 2 5 = 32.

Диапазон IP первой подсети 0

31 (32 хоста), но 0 — это подсеть, а 31 — это Broadcast. Таким образом, максимальное число хостов данной подсети — 30.
Первая подсеть: 59.124.163.0
Broadcast первой подсети: 59.124.163.31

Диапазон IP второй подсети с 59.124.163.32 по 59.124.163.63
Вторая подсеть: 59.124.163.32
Broadcast второй подсети: 59.124.163.63

Мы можем высчитать диапазон IP восьмой подсети с 59.124.163.224 по 59.124.163.255
Восьмая подсеть: 59.124.163.224
Broadcast восьмой подсети: 59.124.163.255

В нашем примере IP-адрес 59.124.163.151 находится в пятой подсети.
Пятая подсеть: 59.124.163.128/27
Диапазон IP пятой подсети с 59.124.163.128 по 59.124.163.159
Broadcast пятой подсети: 59.124.163.159

NOTE: Важно! В настоящее время для удобства расчета IP-адресов в подсети и сетевых масок существуют в Интернете специальные онлайн IP-калькуляторы, а также бесплатные программы/утилиты для быстрого и наглядного расчета.

Пользователи, считающие этот материал полезным: 263 из 293

Сканирование сети по IP-адресам

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

Данную функцию можно использовать для поиска компьютеров с заданным портом. Например, таким образом можно найти все компьютеры в вашей сети, на которых есть FTP, задав в списке опрашиваемых портов значение 21 (аналогично для HTTP — 80).

Функция сканирования сети по IP-адресам является дублированием функции поиска новых устройств в сети.

Поиск новых устройств в сети построен на том же механизме, что и Мастер создания новой карты сети . В основу положен многопоточный перебор всех возможных IP-адресов из заданных диапазонов. На каждый IP-адрес отправляется набор стандартных сетевых запросов, ответы на которые означают, что в сети существует устройство с таким адресом. В число таких запросов входит:

  • отправка ICMP-пакета (ping);
  • сканирование списка TCP-портов;
  • попытка получения MAC-адреса хоста по его IP-адресу (ARP-пинг);
  • подключение к SNMP-агенту.

Процедура опроса работает в несколько параллельных потоков, что значительно ускоряет процесс поиска.

Процедура поиска новых устройств запускается путем выбора пункта главного меню Сервис | Поиск новых устройств или Правка | Импорт устройств | Сканировать сеть по IP-адресам. . Окно функции (рис. 1) содержит 4 вкладки. В полях Начальный адрес и Конечный адрес первой вкладки вводятся границы сканирования сети. При нажатии кнопки с пиктограммой стрелки значение полей начального адреса копируется в поля конечного адреса, что ускоряет ввод значений диапазона адресов. По умолчанию в этих полях автоматически проставляется диапазон адресов, в котором находится IP-адрес вашего компьютера (вычисляется по маске сети). Можно задать другой диапазон адресов автоматически, выбрав необходимый сетевой интерфейс из соответствующего списка. Заданный диапазон помещается в список для обработки нажатием кнопки Добавить -> . Удалить диапазон можно нажатием кнопки Удалить. Следует учесть, что программой будут обрабатываться только диапазоны, помеченные галочкой.

Рис. 1. Вкладка Диапазоны сканирования.

На второй вкладке (рис. 2) задаются параметры сканирования. Выберите требуемые способы опроса сети. Следует учесть, что чем больше способов выбрано, тем больше устройств может быть найдено. Однако, это увеличит время сканирования. Это касается и числа проверяемых TCP-портов, и количества пакетов ICMP-пинга. Информация из поля Community string необходима для поиска и получения информации из SNMP-устройств (сетевые принтеры, коммутаторы и т.д.). Обычные значения Community string: public, private, rmon. При выборе способа TCP-пинга следует учитывать, что сканирование портов удаленных хостов может расцениваться брандмауэрами как потенциальная атака, что повлечет за собой соответствующие последствия. Если вы не администратор сети, рекомендуется выяснить, допустимо ли в вашей сети сканирование TCP-портов.

Для всех типов запросов можно настроить время ожидания ответа от проверяемого адреса.

Включение параметра Искать только новые позволяет контролировать появление новых или несанкционированных устройств в сети. Для того чтобы функция в этом режиме работала успешно, необходимо первый раз просканировать сеть без этого параметра. После того как программа найдет все устройства из заданного диапазона, нужно поместить их адреса в Список разрешенных IP-адресов (рис. 3). Затем, включив параметр Искать только новые, программа будет сообщать о появлении устройств с адресами, не входящими в этот список. Процесс сканирования можно зациклить, указав период автоматического перезапуска (параметр Сканировать постоянно, через NN сек). Параметр Максимальное кол-во потоков регулирует количество поисковых потоков, которые будут параллельно сканировать заданные диапазоны адресов. Чем больше потоков, тем быстрее пройдет сканирование. Однако, большое кол-во потоков может заметно снизить общую производительность вашей системы. Рекомендуется использовать предустановленные значения. Максимально возможное разрешенное количество потоков — 100.

Для того чтобы при добавлении новых устройств на карту рисовались линии их связи с коммутатором, нужно включить параметр Рисовать связи при добавлении на карту. и указать адреса коммутаторов, откуда брать информацию об этих связях. Однако, связи могут быть не получены, и тогда линия не будет нарисована.

Рис. 2. Вкладка Параметры сканирования.

На третьей вкладке (рис. 3) находится список разрешенных адресов. Он может быть сформирован как вручную, так и автоматически — импортом с созданной ранее карты или из списка результатов поиска (рис. 4). Кроме того, список адресов может быть сохранен в текстовый файл или загружен из него (кнопки Сохранить и Загрузить).

Использование этого списка позволяет оперативно обнаруживать несанкционированные подключения к сети или смену IP-адреса удаленного компьютера. Для включения этой функции нужно единожды создать полный список IP-адресов всех известных хостов в сети с привязкой их к MAC-адресу и включить параметр Искать только новые. Программа в процессе сканирования будет сравнивать адреса очередного найденного хоста с теми, что есть в списке. В случае, если будет обнаружен новый адрес, программа просигнализирует об этом сообщением. Для обнаружения новых подключений достаточно задать только MAC или IP-адрес. Для обнаружения факта смены IP-адреса необходимо задать в списке пару IP-MAC.

Рис. 3. Вкладка Список разрешенных адресов.

Результаты сканирования отображаются на следующей вкладке окна (рис. 4). Найденные устройства можно поместить на карту, пометив их галочками и нажав кнопку Добавить на карту. При необходимости можно отрезать DNS-суффиксы у имен компьютеров при помещении на карту (параметр Отбрасывать DNS-суффикс. ). Предоставляется возможность помещения на уже созданную карту только новых устройств, т.е. тех, которых еще нет на карте. Это облегчает поддержание актуальности карт динамично развивающихся, больших сетей. Для включения данной опции достаточно пометить галочкой параметр Поместить на карту только новые. Для автоматического помещения новых устройств на карту необходимо включить параметр Помещать на карту автоматически. Для выбора, что использовать в качестве адреса хоста (DNS-имя или IP-адрес), существует соответствующий параметр.

Логика добавления новых хостов:
При нахождении нового хоста программа на основе параметров В качестве адреса хоста использовать DNS-имя и Отбрасывать DNS-суффикс при помещении на карту формирует будущий адрес хоста. Это будет, например, либо «192.168.1.1», либо «mycomp.dns», либо «mycomp». После этого осуществляется поиск такого адреса среди хостов на карте. Если точное совпадение адреса не установлено, то хост считается новым и добавляется на карту.
При таком подходе программа будет считать адреса «mycomp.dns» и «mycomp» НЕ РАВНЫМИ. То есть, если при создании карты в качестве адреса использовались DNS-имена с суффиксами, а позже при поиске новых устройств был выбран параметр Отбрасывать DNS-суффикс при помещении на карту, то эти же хосты будут добавлены, но уже без DNS-суффикса.

На вкладке Оповещение можно настроить действия, которые будут выполнены при обнаружении новых хостов. Оповещение сработает только в том случае, если будет включен параметр Искать только новые (вкладка Параметры сканирования), то есть те, которых нет в списке разрешенных адресов. Программа может выдать сообщение на экран этого компьютера, отправить E-mail, сделать отметку в журнале сигнализации и проиграть звуковой файл. Текст для сообщения, E-mail и записи журнала может быть настроен с помощью набора ключей.

Процесс поиска можно прекратить до его завершения нажатием кнопки Стоп.

Процесс сканирования можно перевести в фоновый режим работы, нажав кнопку Esc — В фоне. При этом на панели инструментов главного окна программы появится кнопка, в заголовке которой будет отображаться ход сканирования. При нажатии на эту кнопку процесс сканирования вновь вернется в оконный режим. Если выбрать режим В фоне и свернуть программу в трэй, то по окончании сканирования или при обнаружении нового устройства вы будете оповещены звуковым сигналом, сообщением и всплывающей подсказкой значка программы в трэе.

Для постоянного автоматического контроля за безопасностью сети необходимо выбрать параметр Запускать в фоне при старте программы автоматически. В этом случае сканирование ранее заданных диапазонов сетевых адресов будет запускаться автоматически каждый раз, как будет загружаться программа. При этом окно сканирования уже будет свернуто, и вернуть его можно будет, либо повторно вызвав соответствующие пункты меню, либо нажав описанную кнопку на панели инструментов.

Вы можете скопировать результаты сканирования в буфер, а затем вставить в любой текстовый файл или лист Microsoft Excel. Для этого вызовите контекстное меню списка ресурсов и выберите пункт Копировать в буфер.

Скачайте бесплатную 30-дневную версию прямо сейчас и попробуйте!

Получение всех ip-адресов хоста

Нужны новые клиенты? Тогда Вам рекомендуем посмотреть этот раздел нашего сайта
_____

Существует несколько автоматических способов, использующих протоколы, для IP адресов. В этом разделе описываются некоторые из этих способов.

Автоматическое получение IP адресов. Способы получения.

Здесь приведено несколько протоколов, которые могут использоваться для получения IP адресов:

■ Протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol (DHCP)): Этот протокол используется для назначения IP адресов автоматически, а также для конфигурации других параметров TCP/IP стека, таких как маска подсети и шлюза по умолчанию, и серверы, обеспечивающие службу имён доменов (Domain Name System (DNS)). DHCP также предоставляет другую конфигурационную информацию, если необходимо, включая время жизни адреса, назначенного хосту. DHCP содержит два компонента: протокол для доставки персональной конфигурации хоста от DHCP сервера к хосту и механизм для назначения сетевых адресов хостам.

Используя DHCP, хост может быстро в динамическом режиме получать IP адрес. Все что требуется, это назначить диапазон IP адресов на DHCP сервере. Как только хосты включаются, они связываются с DHCP сервером и запрашивают информацию об адресе. DHCP сервер выбирает адрес и назначает его этому хосту. Этот адрес предоставляется хосту в «аренду», поэтому хост будет периодически связываться с DHCP сервером для продления аренды. Этот механизм дает уверенность, что хост который был перемещен или долгое время был выключен, не удерживает адрес, который он не использует. Эти адреса возвращаются в пул адресов DHCP сервера, чтобы быть переназначенными, если это необходимо.

DHCP является протоколом, описанным в RFC 2131, заменившем RFC 1541. DHCP основывается на протоколе ВООТР (Bootstrap Protocol), который он эффективно заменил.

■ ВООТР: Устройства в сети могут использовать ВООТР, когда они загружаются, для получения IP адреса. Компьютер, использующий ВООТР, рассылает широковещательные IP пакеты BOOTREQUEST, используя в качестве адреса назначения адрес, состоящий из всех единиц (255.255.255.255). Сервер ВООТР получает пакет и отвечает при помощи BOOTREPLY. Когда клиент получает IP дейтаграмму, которая была отправлена к его собственному MAC адресу в поле назначения, он берет IP адрес из поля с данными, полученному внутри BOOTREPLY дейтаграммой.
ВООТР определен в RFC 951 (расширен в RFC 1497).

■ Протокол определения сетевого адреса по местоположению узла (Reverse Address Resolution Protocol (RARP)): Это протокол позволяет физическому (MAC) адресу быть соотнесенным с IP адресом. Когда хост загружается, он может знать MAC адрес, но не свой IP адрес. Хост может использовать сервер RARP для получения IP адреса от удаленного источника. RARP протокол канального уровня, используемый рабочими станциями UNIX.

RARP определен в RFC 903 с дополнениями в RFC 1931.

Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет

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

P.S. Возможно, со временем список дополнится.

Начнем, или уже продолжим, с самого популярного, заезженного и больного. Это IP-адреса. На протяжении 4-х статей это понятие встречалось по несколько раз, и скорее всего вы уже либо сами поняли для чего они, либо нагуглили и почитали о них. Но я обязан вам это рассказать, так как без ясного понимания двигаться дальше будет тяжело.

Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.

Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?

Можно конечно набить это в калькулятор, коих навалом в Интернете, и он переведет его в двоичный формат, но я считаю, что переводить вручную должен уметь каждый. Особенно это касается тех, кто планирует сдавать экзамен. У вас не будет под рукой ничего, кроме бумаги и маркера, и полагаться придется только на свои навыки. Поэтому показываю, как это делать вручную. Строится таблица.

128 64 32 16 8 4 2 1
x x x x x x x x

Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.

Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.

128 64 32 16 8 4 2 1
1 1 1

Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.

Берем первый октет 233. 128 + 64 + 32 + 8 + 1.

128 64 32 16 8 4 2 1
1 1 1 1 1
128 64 32 16 8 4 2 1
1 1 1
128 64 32 16 8 4 2 1
1 1
128 64 32 16 8 4 2 1
1 1 1 1 1

Получаю 128 + 64 + 16 + 4 + 1 = 213.

Вычисляю второй блок.

128 64 32 16 8 4 2 1
1 1 1 1

Считаю 128 + 32 + 16 + 4 = 180.

128 64 32 16 8 4 2 1
1 1 1

128 + 64 + 1 = 193.

И напоследок четвертый.

128 64 32 16 8 4 2 1
1 1

Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).

1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
8) 00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101

Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.

Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.

Начнем с класса A. Если внимательно посмотреть на таблицу, то можно заметить, что этому блоку дан самый большой блок адресов, а если быть точным, то половина всего адресного пространства. Предназначался данный класс для крупных сетей. Структура этого класса выглядит следующим образом.

В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.

Поговорим про класс B

Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».

Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».

Классы D и E. Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.

Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.

А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.

Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.

Теперь углубимся в изучении маски.

Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.

Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.

Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.

Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.

Красным цветом я показал те биты, которые зафиксированы и не могут изменяться. То есть маска ей задает границу. Соответственно биты помеченные черным цветом определены для адресации хостов. Теперь вычислю эту границу. Чтобы определить начало, надо все свободные биты(помеченные черным цветом) обратить в ноль, а для определения конца обратить в единицы. Приступаю.

То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.

Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.

Приведу в десятичный вид.

Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.

Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле

В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:

N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.

Внесу ясность и объясню, как и где применять эти формулы.

Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.

В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.

Двигаемся дальше. Первое главное условие, при использовании классовой адресации — это то, что должна использоваться одна маска для всех подсетей. То есть, если у вас для одной подсети маска 255.255.255.0, то для другой подсети она не может быть 255.255.255.128.

Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.

Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64 H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.

Думаю теперь понятно, как работала классовая адресация, и как ее рассчитывали. Возможно с первого раза голова не переварит этого, поэтому перечитывайте еще раз и повнимательнее. Как только начнет что-то проясняться, потренируйтесь на задачках, которые я оставлю.

1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.

На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.

Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).

Привожу диапазон адресов, которые выделены под локальные сети:

1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).

Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.

Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.

1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.

2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.

3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.

4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.

Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.

В качестве шпаргалки приведу список всех возможных масок.

Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:

1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.

Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.

Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!

1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.

Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.

Вот у нас блок, состоящий из 256 адресов.

После деления на 4 части получается следующая картинка.

Выше мы выяснили, что при таком раскладе адреса используются не рационально. Теперь обратите внимание, как стало выглядеть адресное пространство после нарезки подсетей разной длины.

Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.

Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:

— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как буду выглядеть маски?

Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.

Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:

Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.

Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:

Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.

3-я подсеть, которая предназначена для филиала, начнет старт с .96:

Адрес подсети — 192.168.1.96.
Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.

Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:

Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.

Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.

Вот таким образом, при помощи VLSM или масок переменной длины, мы экономно создали 4 подсети с нужным количеством адресов в каждой. Думаю это стоит закрепить задачкой для самостоятельного решения.

Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:

1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.

1) Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.

2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.

3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.

Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.

Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:

— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24

Тут коллеги с соседнего здания очухались и поняли, что у них слетела конфигурация на маршрутизаторе, а бекапов нет. Наизусть они не помнят, какие в главном здании подсети, но помнят, что они находятся рядом друг с другом, и просят прислать одну суммированную. Теперь у меня возникает задача, как их суммировать. Для начала я переведу все подсети в двоичный вид.

Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть.
Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.

Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.

Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.

Таким образом, переводя подсети в двоичный формат и находя одинаковые биты, можно их суммировать.

Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.

1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0

Просуммируйте подсети и найдите маску, которая сможет покрыть их, не задевая при этом соседние подсети.

AdBlock has stolen the banner, but banners are not teeth — they will be back

Учитель информатики

Сайт учителя информатики. Технологические карты уроков, программирование, полезный материал и многое другое.

Что такое IP-адрес, маска, хост, адрес сети.

Здравствуйте, в этой статье вы узнаете что такое IP-адрес, маска, хост, адрес сети и как это рассчитывается. Давайте начнем с ip-adress (айпи-адреса). Он записывается в виде 4 чисел от 0 до 255 разделенных точками.

Например такой: 192.168.1.1

каждый из этих чисел представляет собой один байт т. е. может принимать максимум 256 значений. Если перевести числа ip — adress в двоичную систему то это можно увидеть наглядно. Наш ip — adress будет выглядеть вот так: 11000000.10101000.00000001.00000001

В ip — adress записывается адрес сети и адрес хоста. Адрес хоста еще иногда называют адресом компьютера в сети. Часть нулей и единиц является адресом сети, а другая часть адресом хоста. Для того что бы понять что где находится нужна маска подсети. Маска подсети это тоже набор чисел от 0 до 255 только в двоичной системе всегда в ней сначала идут единицы, а потом нули.

Рассмотрим такой пример: 255.255.255.0 — маска подсети

В двоичной системе она будет иметь такой вид 11111111.11111111.11111111.00000000

На месте этих единиц в ip — adress записывается адрес сети, а на месте нолей адрес хоста.

Давайте определим адрес сети. Нужно выписать все числа которые находятся над единицами. Либо можем перемножить разряды получится то же самое.

11000000.10101000.00000001.00000001
11111111. 11111111. 11111111. 00000000

Адрес сети будет равен

что в десятичной системе будет равно

192.168.1.0 — адрес сети.

Номер компьютера оставшиеся числа под нулями вот эти

При этом хостом не может быть 0 потому что в этом случае у нас получится адрес сети вот такой 192.168.1.0. И хостом не могут быть все 1 потому что для всех 1 у нас зарезервирован широковещательный адрес т. е. из всех возможностей из 256 которые здесь могут быть, хостом могут быть только 254.

Теперь давайте определим сколько различных хостов может быть вот для такой маски

Запишем каждый байт этой маски в двоичной системе счисления

Адрес сети нам не нужен нам нужно узнать только сколько здесь возможных хостов. Как мы видим у нас вот эта часть (все единицы) маски необходима для определения адреса сети.

Под хосты выделены 13 нулей. Соответственно каждый разряд этой части ip — adress может принимать либо единицу либо ноль, проще говоря возможны 2 варианта. 2 в 13 степени т. к. у нас 13 нулей равно 8192. У нас не может быть хоста со всеми нулями или всеми единицами поэтому нужно вычесть 2 адреса тогда получиться 8190.

Для этой маски 255.255.224.0 возможны 8190 ip — adress .

Это только базовые знания построения адресации сетей. Мы не рассматривали зарезервированные адреса для подсетей и т. д. Но в целом этого достаточно для базовых знаний.

Администрирование сетевых лицензий

Поиск имени узла и физического адреса

Для получения файла сетевой лицензии на программное обеспечение Autodesk необходимо знать имя узла и физический адрес серверов, на которых будет запущено приложение Network License Manager (NLM). Эта информация и серийный номер продукта отправляется в компанию Autodesk и используется для создания файла сетевой лицензии, который позволяет запустить NLM.

Имя узла и физический адрес

Ниже приводятся рекомендации, которые помогут найти правильную информацию и отправить ее при запросе файла сетевой лицензии.

    Ethernet-адаптер. Если на сервере установлено несколько Ethernet-адаптеров, необходимо выбрать тот из них, который соответствует физическому сетевому адаптеру. Не используйте физический адрес для любых беспроводных устройств и устройств Bluetooth, поскольку из-за их недопустимости сетевая лицензия не будет работать.

При наличии нескольких физических соединений Ethernet в системе Windows неважно, какой из них используется. Если используется компьютер под управлением Mac OS X и несколькими сетевыми адаптерами, необходимо использовать адрес основного сетевого адаптера.

  • Имя узла. Уникальный идентификатор длиной до 255 символов, который состоит из цифр и букв и используется как имя компьютера или сервера.
  • Физический адрес. Указывает физический адрес соединения Ethernet на компьютере или сервере. Это может быть MAC-адрес, идентификатор хоста или идентификатор сервера. Адрес содержит двенадцать символов, представляющих комбинацию цифр (0–9) и букв (A–F, a–f). Физический адрес часто представляют в следующем формате: XX-XX-XX-XX-XX-XX.
  • Имя и синтаксис адреса. При запросе файла сетевой лицензии убедитесь, что правильно указаны символы, которые выглядят одинаково. Например:
    • цифра ноль (0) и буква O;
    • цифра один (1) и строчная или прописная буква L, а также прописная буква I (в зависимости от шрифта).
  • Поиск с помощью командной строки (только Windows)

    Поиск имени узла и физического адреса с помощью командной строки Windows

      Откройте окно командной строки, выбрав «Пуск» > «(Все) Программы» > «Стандартные» > «Командная строка».

    Примечание. Если у вас нет доступа к командной строке, обратитесь в ИТ-отдел или к пользователю с правами администратора на локальном компьютере, чтобы найти эту информацию.

    Тип ipconfig /all и нажмите клавишу ENTER.

    Имя узла отобразится в верхней части в разделе Настройка протокола IP для Windows.

    Физический адрес отобразится в разделе Адаптер Ethernet Подключение по локальной сети.

    Поиск с помощью LMTOOLS (только Windows)

    Если приложение Autodesk Network License Manager уже установлено в системе Windows, можно использовать утилиту LMTOOLS для поиска сведений о сервере.

    Поиск имени узла и физического адреса с помощью утилиты LMTOOLS

    1. Откройте утилиту LMTOOLS, выбрав Пуск > Все программы > Autodesk > Network License Manager > LMTOOLS Utility.
    2. Откройте вкладку системных настроек.

    В области Hostid Settings слева в поле Computer/Hostname отображается имя узла, а физический адрес — в поле Ethernet Address.

    Поиск с помощью окна терминала (Linux или Mac)

    Если приложение Autodesk Network License Manager уже установлено в системе Mac или Linux, можно использовать утилиту lmutil, чтобы найти информацию о сервере.

    Поиск имени узла и физического адреса с помощью окна терминала в ОС Mac или Linux

    1. Откройте окно терминала.
    2. Введите команды для перехода в каталог, где установлена утилита lmutil. Например:

    cd /usr/local/flexnetserver/

    Введите приведенную далее команду для отображения имени хоста.

    ./lmutil lmhostid -hostname

    Появится сообщение, аналогичное тому, что указано ниже.

    lmutil — Copyright (c) 1989-2013 Flexera Software LLC. All Rights Reserved.
    The FlexNet host >

    Введите приведенную ниже команду для отображения физического адреса (идентификатора узла).

    Появится сообщение, аналогичное тому, что указано ниже.

    lmutil — Copyright (c) 1989-2013 Flexera Software LLC. All Rights Reserved.
    The FlexNet host ID of this machine is «6003089af239»

    Что такое IP адресс хоста и как его узнать?

    Воспользуетесь сначала командной строкой Windows, зайдя в систему на правах администратора. Откройте меню «Пуск» и в разделе «Выполнить» или в окне поиска введите значение cmd и нажмите «OK». Впишите в командную строку: nslookup имя_домена (хоста) . Нажмите «Enter». Узнайте IP-адрес хоста, если это возможно, так как эти данные могут быть и скрыты. Как вариант, вместо nslookup вы можете вписать ping имя_домена (хоста) /t, хотя такой доступ тоже может быть заблокирован.

    Если вам нужно узнать, кто в настоящий момент подключен к игровому (или не-игровому) сайту, и по каким IP-адресам, сначала зайдите на него. После этого сверните окно и через «Пуск» снова обратитесь к командной строке. Впишите: netstat и нажмите «Enter». В окне командной строки будут отображены все активные на данный момент соединения и порты. Например: 198.168 .11.1: 55901, где 198.168 .11.1 – это IP-адрес хоста, а 55901 – активный порт.

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

    IPv4 калькулятор подсетей

    Параметр Десятичная запись Шестнадцатеричная запись Двоичная запись
    IP адрес 188.64.174.135 BC.40.AE.87 10111100.01000000.10101110.10000111
    Префикс маски подсети /24
    Маска подсети 255.255.255.0 FF.FF.FF.00 11111111.11111111.11111111.00000000
    Обратная маска подсети (wildcard mask) 0.0.0.255 00.00.00.FF 00000000.00000000.00000000.11111111
    IP адрес сети 188.64.174.0 BC.40.AE.00 10111100.01000000.10101110.00000000
    Широковещательный адрес 188.64.174.255 BC.40.AE.FF 10111100.01000000.10101110.11111111
    IP адрес первого хоста 188.64.174.1 BC.40.AE.01 10111100.01000000.10101110.00000001
    IP адрес последнего хоста 188.64.174.254 BC.40.AE.FE 10111100.01000000.10101110.11111110
    Количество доступных адресов 256
    Количество рабочих адресов для хостов 254

    Познавательное о IPv4 .

    IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Первая широко используемая версия. Протокол описан в RFC 791 (сентябрь 1981 года), заменившем RFC 760 (январь 1980 года).

    IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (2 32 ) возможными уникальными адресами.

    Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети.

    IP-адрес состоит из двух частей: номера сети и номера узла. В случае изолированной сети её адрес может быть выбран администратором из специально зарезервированных для таких сетей блоков адресов (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16). Если же сеть должна работать как составная часть Интернета, то адрес сети выдаётся провайдером либо региональным интернет-регистратором (Regional Internet Registry, RIR). Согласно данным на сайте IANA, существует пять RIR: ARIN, обслуживающий Северную Америку, а также Багамы, Пуэрто-Рико и Ямайку; APNIC, обслуживающий страны Южной, Восточной и Юго-Восточной Азии, а также Австралии и Океании; AfriNIC, обслуживающий страны Африки; LACNIC, обслуживающий страны Южной Америки и бассейна Карибского моря; и RIPE NCC, обслуживающий Европу, Центральную Азию, Ближний Восток. Региональные регистраторы получают номера автономных систем и большие блоки адресов у IANA, а затем выдают номера автономных систем и блоки адресов меньшего размера локальным интернет-регистраторам (Local Internet Registries, LIR), обычно являющимся крупными провайдерами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор по определению входит сразу в несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.

    Есть два способа определения того, сколько бит отводится на маску подсети, а сколько — на IP-адрес. Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.

    Иногда встречается запись IP-адресов вида «192.168.5.0/24». Данный вид записи заменяет собой указание диапазона IP-адресов. Число после косой черты означает количество единичных разрядов в маске подсети. Для приведённого примера маска подсети будет иметь двоичный вид 11111111 11111111 11111111 00000000 или то же самое в десятичном виде: «255.255.255.0». 24 разряда IP-адреса отводятся под номер сети, а остальные 32-24=8 разрядов полного адреса — под адреса хостов этой сети, адрес этой сети и широковещательный адрес этой сети. Итого, 192.168.5.0/24 означает диапазон адресов хостов от 192.168.5.1 до 192.168.5.254, а также 192.168.5.0 — адрес сети и 192.168.5.255 — широковещательный адрес сети. Для вычисления адреса сети и широковещательного адреса сети используются формулы:

    • адрес сети = IP.любого_компьютера_этой_сети AND MASK (адрес сети позволяет определить, что компьютеры в одной сети)
    • широковещательный адрес сети = IP.любого_компьютера_этой_сети OR NOT(MASK) (широковещательный адрес сети воспринимается всеми компьютерами сети как дополнительный свой адрес, то есть пакет на этот адрес получат все хосты сети как адресованные лично им. Если на сетевой интерфейс хоста, который не является маршрутизатором пакетов, попадёт пакет, адресованный не ему, то он будет отброшен).

    Запись IP-адресов с указанием через слэш маски подсети переменной длины также называют CIDR-адресом в противоположность обычной записи без указания маски, в операционных системах типа UNIX также именуемой INET-адресом.

    В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов: если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast). Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, в сети 192.168.5.0 с маской 255.255.255.0 пакет с адресом 192.168.5.255 доставляется всем узлам этой сети. Такая рассылка называется широковещательным сообщением (direct broadcast).

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

    IP-адрес называют динамическим (непостоянным, изменяемым), если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени, указанного в сервисе назначавшего IP-адрес (DHCP).

    Для получения IP-адреса клиент может использовать один из следующих протоколов:

    • DHCP (RFC 2131) — наиболее распространённый протокол настройки сетевых параметров.
    • BOOTP (RFC 951) — простой протокол настройки сетевого адреса, обычно используется для бездисковых станций.
    • IPCP (RFC 1332) в рамках протокола PPP (RFC 1661).
    • Zeroconf (RFC 3927) — протокол настройки сетевого адреса, определения имени, поиск служб.
    • RARP (RFC 903) Устаревший протокол, использующий обратную логику (из аппаратного адреса — в логический) популярного и поныне в широковещательных сетях протокола ARP. Не поддерживает распространения информации о длине маски (не поддерживает VLSM).

    Адреса, используемые в локальных сетях, относят к частным. К частным относятся IP-адреса из следующих сетей:

    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16

    Также для внутреннего использования:

    • 127.0.0.0/8 — используется для коммуникаций внутри хоста.
    • 169.254.0.0/16 — используется для автоматической настройки сетевого интерфейса в случае отсутствия DHCP (за исключением первой и последней /24 подсети).

    Полный список описания сетей для IPv4 представлен в RFC 6890.

    Получение всех ip-адресов хоста

    Есть компьютер с двумя сетевыми картами.
    Пробую получить его IP-адреса с помощью GetHostByName, но получается только один.
    Вернее, может быть, функция выдаёт несколько адресов, но я
    знаю только как получить первый из них.

    Помогите разобраться со структурой, возвращаемой функцией GetHostByName:
    hostent = record
    h_name: PChar;
    h_aliases: ^PChar;
    h_addrtype: Smallint;
    h_length: Smallint;
    case Byte of
    0: (h_addr_list: ^PChar);
    1: (h_addr: ^PChar)
    end;

    А конкретно — судя по описанию, h_aliases и h_addr_list это
    указатели на массивы указателей PChar.
    Как узнать, сколько указателей в массиве (т.е. сколько IP-адресов и синонимов у хоста)?

    GetIpAddrTable
    The GetIpAddrTable function retrieves the interface–to–IP address mapping table.

    DWORD GetIpAddrTable(
    PMIB_IPADDRTABLE pIpAddrTable, // buffer for mapping table
    PULONG pdwSize, // size of buffer
    BOOL bOrder // sort the table
    );
    Parameters
    pIpAddrTable
    [out] Pointer to a buffer that receives the interface–to–IP address mapping table as a MIB_IPADDRTABLE structure.
    pdwSize
    [in, out] On input, specifies the size of the buffer pointed to by the pIpAddrTable parameter.
    On output, if the buffer is not large enough to hold the returned mapping table, the function sets this parameter equal to the required buffer size.

    bOrder
    [in] Specifies whether the returned mapping table should be sorted in ascending order by IP address. If this parameter is TRUE, the table is sorted.
    Return Values
    If the function succeeds, the return value is NO_ERROR.

    If the function fails, use FormatMessage to obtain the message string for the returned error.

    Requirements
    Windows NT/2000/XP: Included in Windows NT 4.0 SP4; Windows 2000; Windows XP Pro; and Windows .NET Server.
    Windows 95/98/Me: Included in Windows 98 and later.
    Header: Declared in Iphlpapi.h.
    Library: Use Iphlpapi.lib.

    Author: Franчois PIETTE

    var
    IPList : TStrings;
    procedure GetIPList(phe : PHostEnt; ToList : TStrings);
    type
    TaPInAddr = array [0..255] of PInAddr;
    PaPInAddr = ^TaPInAddr;
    var
    pptr : PaPInAddr;
    I : Integer;
    begin
    pptr := PaPInAddr(Phe^.h_addr_list);

    I := 0;
    while pptr^[I] <> nil do begin
    ToList.Add(StrPas(WSocket_inet_ntoa(pptr^[I]^)));
    Inc(I);
    end;
    end;

    function LocalIPList : TStrings;
    var
    phe : PHostEnt;
    begin
    IPList.Clear;
    Result := IPList;

    phe := WSocketGetHostByName(LocalHostName);
    if phe <> nil then
    GetIpList(Phe, IPList);
    end;

    Илон Маск рекомендует:  Как заголовок сделать ссылкой
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL