Как правильно писать ip адрес: IP-адрес компьютера — урок. Информатика, 9 класс.

IP-адрес, порт, сетевые имена в многоранговых сетях, консольные команды для работы с сетью в Windows и Unix. Диагностика сетевых неисправностей.

IP-адрес— уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP. В сети Интернет требуется глобальная уникальность адреса; в случае работы влокальной сети требуется уникальность адреса в пределах сети. В версии протокола IPv4 IP-адрес имеет длину 4 байта, а в версии протокола IPv6 IP-адрес имеет длину 16 байт.

IP-адрес состоит из двух частей: номера сети и номера узла. В случае изолированной сети её адрес может быть выбран администратором из специально зарезервированных для таких сетей блоков адресов

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

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

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

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

Серый и белый

Все IP-адреса протокола IPv4 делятся на частные/локальные/внутренние (их называют «серые») и публичные/глобальные/внешние (их называют «белые»).

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

Порт — это числовой идентификатор программы или процесса, которые обслуживают сетевые соединения на заданном сетевом адресе (IP-адресе)

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

Сетевые имена

Между доменным именем и IP-адресом узла нет никакой функциональной зависимости, поэтому единственный способ установления соответствия – это таблица. В сетях TCP/IP используется специальная система доменных имён (Domain Name System, DNS), которая устанавливает это соответствие на основании создаваемых администраторами сети таблиц соответствия. Поэтому доменные имена называют также DNS-именами

Консольные команды

ifconfig Показать конфигурацию всех сетевых интерфейсов

ifconfig eth0 Показать конфигурацию сетевого интерфейса eth0

ifup eth0 Активировать сетевой интерфейс eth0

ifdown eth0 Отключить сетевой интерфейс eth0

ifconfig eth0 192. 168.1.1 netmask 255.255.255.0 Задать конфигурацию IP адреса

ifconfig eth0 promisc Позволяет получать все пакеты, независимо от того были ли они предназначены для хоста или нет. (Это позволяет анализировать сетевой трафик.)

dhclient eth0 Включить на интерфейсе eth0 режим dhcp

route -n Показать таблицу роутинга

route add -net 0/0 gw IP_адрес_шлюза Задать шлюз

route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 настроить статический маршрут для сети 192 .168.0.0/16

Скрыть

route del 0/0 gw IP_адрес_шлюз удалить статический маршрут

traceroute IP_адрес_или_хост предоставляет информацию о пути пакета от вашего компьютера до указанного сайта со всеми промежуточными станциями и временем передачи пакета. Для ipv6 использовать команду traceroute6

echo «1» > /proc/sys/net/ipv4/ip_forward активировать ip маршрутизацию

hostname Показать имя хоста

host [хост] Получить IP адрес от хоста и наоборот

whois [хост] Опросить WHOIS

nslookup [хост] Получить IP адрес от хоста и наоборот через проверку DNS-сервера.

ip link show Показать информацию о всех сетевых интерфейсах.

ip link show eth0 Показать информацию интерфейса eth0.

mii-tool eth0 Показать параметры интерфейса eth0.

ethtool eth0 Показать статистику интерфейса eth0.

netstat -p —inet Показать активные соединения

netstat -lp —inet Показать прослушиваемые порты в системе (и кто их слушает)

Подборка взята с it-talk.ru

cat /etc/services — вывод всех известный портов и утилит(программ) которые на них работают.

Диагностика сетевых неисправностей

Комплексная диагностика предполагает следующие работы (этапы):

— выявление дефектов физического плана сети: системы электропитания активного оборудования, кабельной системы, наличия шума от внешних источников;

— измерение текущей загруженности канала связи, определение влияния величины загрузки канала на время реакции прикладного ПО;

— измерение числа коллизий в сети и выявление их причин;

— измерение числа ошибок передачи данных на уровне канала связи, выявление их причин;

— выявление дефектов архитектуры сети;

— измерение текущей загруженности сервера, определение влияния степени загруженности на время реакции прикладного ПО;

— выявление дефектов прикладного ПО, т. е. причыны неэффективного использования пропускной способности сервера и сети.

сеть — Что такое /24 /16 в ip-адресах?

/16, /24 — это обозначение классов сетей.

Переписывать матчасть не буду, поэтому почитайте здесь.

Поэкспериментировать и наглядно понять правильность понимания можно вот тут.

Что касается упомянутого «109.207.13.X то есть от 109.207.13.0 до 109.207.13.255», то это сеть класса C, т.е. 109.207.13.0/24 с маской подсети 255.255.255.0 (где /24 означает представление маски в десятичной форме, а именно с ее двоичной формы записи 11111111.11111111.11111111.00000000, т.е. маска 24 бит из возможных 32-х, и количество возможных хостов в этой подсети, как в твоем случае, как раз 256, т.е. от 0 до 255 включительно).

Эх.. Раз пошла такая пьянка — режь последний огурец..

Итак, что такое /24: IP адрес (IPv4) представляет собой адрес, состоящий из 4 байтов (32-х бит, т. е. 4х8 бит, разделенных точкой), где его формат записи в двоичной форме выглядит как 11000000.10101000.00000000.00000001. А десятичной форме аналогичная запись выглядит как запись из 4-х чисел от 0 до 255 включительно, где 255 — это максимальное число, которое можно выразить в 8-ми битах, т.е. 255 в двоичном формате будет выглядеть так: 11111111. Т.е. некоторый IP, скажем 192.168.0.1, будет выглядеть в двоичной форме так: 11000000.10101000.00000000.00000001. Если взять сеть 192.168.0.0/24 и выбрать любой IP адрес из диапазона 192.168.0.0 - 192.168.0.255, то для конкретного IP адреса любого из этих 256 возможных хостов (теоретически от 0 до 255 включительно) маска подсети будет выглядеть следующим образом: 11111111.11111111.11111111.00000000 (255.255.255.0 в десятичной форме), что означает что 3х8=24 бита (слева направо) в адресе — это биты, указывающие на адрес подсети, а последние 8 битов отведены на IP адреса хостов в подсети, т. е. от 0 до 255 (что равняется 256-ти, и 256 — это число всех возможных комбинаций от 00000000 до 11111111).

Теперь дальше и глубже: допустим, что не требуется все 256 хостов в одной подсети, а хочется разделить пространство на еще 2 подсети (по 128 хостов в каждой). Тогда можно разделить эту сеть так: маска подсети будет 255.255.255.128 (т.е. 11111111.11111111.11111111.10000000 или же /25 — по количеству битов слева направо) и получаем сети с 128 хостами в каждой: 0-127 в одной (Network 192.168.0.0 с Broadcast Address 192.168.0.127) и 128-255 (Network 192.168.0.128 с Broadcast Address 192.168.0.255) в другой.

Добавлю еще для понимания (не вдаваясь в подробности операций с двоичными данными), выражаясь простыми словами для быстрой калькуляции в уме: раз IPv4 адрес состоит всегда из 4х8=32 бит, и если маска подсети в каком-то конкретном случае занимает, скажем, 24 бит (те, что слева направо), то 32-24=8 бит идут под диапазон для IP адресов хостов (читай компьютеров, сетевых принтеров, прочих устройств, имеющих свой IPv4). 16) хостов в одной подсети, т.е. маска выглядит так: 11111111.11111111.00000000.00000000, т.е. адрес сети занимает 8х2=16 бит (слева), а под IP адреса хостов выделено тоже 8х2=16 (все возможные комбинации от 00000000.00000000 до 11111111.11111111, т.е. как раз 65536 штук) значения бит из адреса (справа). Т.е. диапазон IP адресов хостов в десятичной форме выглядит так: от 192.168.0.0 до 192.168.255.255, где маска подсети /16, т.е. 255.255.0.0

Ну и так далее..

Что касается «Подскажите пожалуйста как правильно?» — если речь идет о .htaccess, то смело можете использовать Deny и указывать 109.207.13.0/24.

order allow,deny
allow from all
deny from 109.207.13.0/24

Если речь идет о блокировке в каких-нибудь Cisco или Juniper — то это тогда в их документацию и на РутКод 🙂

IP-адрес

IP-адрес

Адрес — это структура данных, понятная сети, которая однозначно идентифицирует конечную точку получателя в сети.

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

Традиционный Интернет использует сетевой протокол IPv4. Это назначает адрес интерфейсам хоста (компьютерам или другим сетевым конечным точкам) и интерфейсам маршрутизатора. Адрес ecah представляет собой 32-битное число (4 байта). Адрес назначается таким образом, чтобы никакие две системы не имели одинаковый IP-адрес. Некоторые системы имеют более одного IP-адреса, и в этом случае они могут быть доступны по любому из их IP-адресов.

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

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

адреса IPv4 обычно записываются в формате, известном как «десятичная запись с точками». В этом формате каждый байт 4-байтового адреса выражается как десятичное (с основанием 10) число (т. е. от 0 до 255). Четыре десятичных числа разделены «точками» или «точками», как показано ниже:

.

Адрес IPv4 «129.7.1.10» соответствует шестнадцатеричному значению 0x8107010A.

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

Специальное значение «0.0.0.0» зарезервировано для неизвестного адреса. Он редко используется в качестве адреса пакета и обычно недействителен.

Сетевой адрес IPv4 идентифицируется как побитовое логическое И 32-битного адреса IPv4 с другой 32-битной величиной, сетевой маской. Все системы с одинаковым сетевым номером используют одну и ту же сетевую маску (иногда называемую «маской подсети»). Это значение часто узнается с помощью DHCP.

Маска подсети организована таким образом, что каждый бит с логической «1» указывает на бит в значении адреса, который является частью номера сети, и логический «0» для каждого бита, который является частью номера хоста. Сетевая маска может быть записана в виде десятичной записи с точками или, альтернативно, в виде шестнадцатеричного числа.

например, 24-битный номер сети имеет сетевую маску, которая может быть записана как 255. 255.255.0, это идентично 0xFFFFFF00.

Следовательно, IP-адрес 129.7.1.10 с сетевой маской 255.255.255.0 указывает, что номер сети равен 129.7.1.0.

24-битный номер сети оставляет часть хоста из 8 бит. Это сеть с пространством для 254 хостов. (Помните, что номер хоста «0» зарезервирован для самой сети, а адрес всего хоста зарезервирован для использования в качестве сетевого широковещательного адреса). Иногда сетевая маска представлена ​​записью IP-адреса, за которым следует косая черта (‘/’) с количеством последовательных битов «1», используемых для формирования номера сети. Вышеупомянутая сетевая маска, таким образом, также может быть представлена ​​как «/24» (т. е. 24 «1» перед «0»). Вот еще несколько примеров:

IP-адрес маска подсети номер сети основная часть сетевой широковещательный адрес
7. 7.7.7/8 255.0.0.0 7.0.0.0 7.7.7 7.255.255.255

139.133.7.10/24

255.255.255.0 139.133.7.0 10 139.133.7.255
129.5.255.2/16 255.255.0.0 129.5.0.0 255,2 129.5.255.255
131.108.2.1/24 255.255.255.0 131.108.2.0 1 131.108.2.255
131.108.2.1/30 255.255.255.252 131.108.2.0 1 131. 108.2.3

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

Пример

Как получатель может определить, что это широковещательный IP-пакет подсети, если исходный IP-адрес равен 192.168.10.2/24?

Адрес использует информацию об адресации для установки широковещательного адреса локальной подсети (все 1 в части узла сетевой маски). Все хосты в одной IP-сети используют общий широковещательный адрес подсети.

В данном случае маска 24b, т.е. биты (32-24) составляют хост-часть. Итак, широковещательный адрес подсети IPv4: 192.168.10.255.

Динамическая конфигурация хоста

Конфигурация с отслеживанием состояния позволяет серверу DHCP назначать IP-адреса и маски подсети с использованием протокола динамической конфигурации хоста (DHCP).

IPv6

С момента широкого использования IPv4 количество адресов, доступных для покупки, сокращается, так что в настоящее время доступно относительно мало адресов для добавления новых сетей. IPv6 обеспечивает решение этой проблемы и может приобретаться так же, как адреса IPv4. IPv6 использует 128-битные адреса, что значительно увеличивает количество адресов, доступных для выделения. Адреса IPv6 всегда представлены в шестнадцатеричном формате и никогда в десятичном формате с точками.

Как и IPv4, IPv6 использует маску подсети, чтобы определить, какая часть адреса представляет номер сети, а какая доступна для идентификации хост-интерфейсов. Поскольку адрес имеет длину 128 бит, маска подсети также должна иметь длину 128 бит. в IPv6 нет широковещательного адреса, вместо этого для связи с системами в той же широковещательной сети используется многоадресная рассылка IPv6.

DNS и сетевые имена

Поскольку IP-адреса представляют собой длинные числа, их нелегко запомнить.
людьми, поэтому большинство пользователей предпочитают запоминать логическую
имя вместо IP-адреса. Система, известная как DNS, сопоставляет 32-битные адреса IPv4 и их соответствующие логические имена (и 128-битные адреса IPv6, когда это используется). Для облегчения чтения пользователями DNS организована в виде иерархической структуры.


См. также:

Заголовок IP-пакета

IPv6


Горри Фэйрхерст — Дата: 01.10.2020

Введение в модуль ipaddress — документация Python 3.11.1

автор

Питер Муди

автор

Ник Коглан

Обзор

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

Создание адресных/сетевых/интерфейсных объектов

Поскольку ipaddress — это модуль для проверки и управления IP-адресами,
Первое, что вам нужно сделать, это создать несколько объектов. Вы можете использовать
IP-адрес для создания объектов из строк и целых чисел.

Примечание по версиям IP

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

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

IP-адреса узлов

Адреса, часто называемые «адресами хостов», являются основной единицей измерения.
при работе с IP-адресацией. Самый простой способ создания адресов
использовать ipaddress.ip_address() заводская функция, которая автоматически
определяет, создавать ли адрес IPv4 или IPv6 на основе переданного
значение:

 >>> ipaddress.ip_address('192.0.2.1')
IPv4-адрес('192.0.2.1')
>>> ipaddress.ip_address('2001:DB8::1')
IPv6-адрес('2001:db8::1')
 

Адреса также могут быть созданы непосредственно из целых чисел. Ценности, которые будут
умещаться в пределах 32 бит, предполагается, что это IPv4-адреса:

 >>> ipaddress.ip_address(3221225985)
IPv4-адрес('192.0.2.1')
>>> ipaddress.ip_address(42540766411282592856903984951653826561)
IPv6-адрес('2001:db8::1')
 

Чтобы принудительно использовать адреса IPv4 или IPv6, соответствующие классы могут быть
вызывается напрямую. Это особенно полезно для принудительного создания IPv6.
адреса для небольших целых чисел:

 >>> ipaddress.ip_address(1)
IPv4-адрес('0.0.0.1')
>>> ipaddress.IPv4Address(1)
IPv4-адрес('0.0.0.1')
>>> ipaddress.IPv6Address(1)
IPv6-адрес('::1')
 

Определение сетей

Адреса узлов обычно группируются в IP-сети, поэтому
IP-адрес позволяет создавать, проверять и управлять сетью.
определения. Сетевые IP-объекты создаются из строк, определяющих
диапазон адресов хостов, которые являются частью этой сети. Самая простая форма
для этой информации используется пара «сетевой адрес/сетевой префикс», где
префикс определяет количество начальных битов, которые сравниваются для определения
является ли адрес частью сети и сетевой адрес
определяет ожидаемое значение этих битов.

Что касается адресов, то предусмотрена заводская функция, определяющая правильный
IP-версия автоматически:

 >>> ipaddress.ip_network('192.0.2.0/24')
Сеть IPv4('192.0.2.0/24')
>>> ipaddress.ip_network('2001:db8::0/96')
Сеть IPv6('2001:db8::/96')
 

Сетевые объекты не могут иметь установленные биты хоста. Практический эффект от этого
в том, что 192.0.2.1/24 не описывает сеть. Такие определения
называются интерфейсными объектами, поскольку нотация ip-on-a-network
обычно используется для описания сетевых интерфейсов компьютера в данной сети
и описаны далее в следующем разделе.

По умолчанию при попытке создать сетевой объект с установленными битами хоста
в результате возникает ошибка ValueError . Просить, чтобы
дополнительные биты вместо этого обнуляются, флаг strict=False может
передать конструктору:

 >>> ipaddress.ip_network('192.0.2.1/24')
Traceback (последний последний вызов):
   ...
ValueError: 192.0.2.1/24 имеет установленные биты хоста
>>> ipaddress.ip_network('192.0.2.1/24', strict=False)
Сеть IPv4('192.0.2.0/24')
 

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

 >>> ipaddress. ip_network(3221225984)
Сеть IPv4('192.0.2.0/32')
>>> ipaddress.ip_network(42540766411282592856903984951653826560)
Сеть IPv6('2001:db8::/128')
 

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

Хост-интерфейсы

Как упоминалось выше, если вам нужно описать адрес на определенном
сети, ни адреса, ни сетевых классов недостаточно.
Обозначение типа 192.0.2.1/24 обычно используется сетевыми инженерами и
люди, которые пишут инструменты для брандмауэров и маршрутизаторов как сокращение от «хост-сервер».
192.0.2.1 в сети 192.0.2.0/24 », Соответственно ipaddress
предоставляет набор гибридных классов, которые связывают адрес с определенным
сеть. Интерфейс для создания идентичен интерфейсу для определения сети.
объекты, за исключением того, что адресная часть не ограничена сетью
адрес.

 >>> ipaddress. ip_interface('192.0.2.1/24')
IPv4Интерфейс('192.0.2.1/24')
>>> ipaddress.ip_interface('2001:db8::1/96')
IPv6Interface('2001:db8::1/96')
 

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

Проверка адресных/сетевых/интерфейсных объектов

Вы потрудились создать IPv(4|6)(Адрес|Сеть|Интерфейс)
объект, поэтому вы, вероятно, хотите получить информацию о нем. IP-адрес
пытается сделать это простым и интуитивно понятным.

Извлечение версии IP:

 >>> addr4 = ipaddress.ip_address('192.0.2.1')
>>> addr6 = ipaddress.ip_address('2001:db8::1')
>>> адрес6.версия
6
>>> адрес4.версия
4
 

Получение сети с интерфейса:

 >>> host4 = ipaddress.ip_interface('192.0.2.1/24')
>>> хост4.сеть
Сеть IPv4('192.0.2.0/24')
>>> host6 = ipaddress.ip_interface('2001:db8::1/96')
>>> host6.network
Сеть IPv6('2001:db8::/96')
 

Определение количества отдельных адресов в сети:

 >>> net4 = ipaddress. ip_network('192.0.2.0/24')
>>> net4.num_addresses
256
>>> net6 = ipaddress.ip_network('2001:db8::0/96')
>>> net6.num_addresses
4294967296
 

Перебор «полезных» адресов в сети:

 >>> net4 = ipaddress.ip_network('192.0.2.0/24')
>>> для x в net4.hosts():
... печать (х)
192.0.2.1
192.0.2.2
192.0.2.3
192.0.2.4
...
192.0.2.252
192.0.2.253
192.0.2.254
 

Получение сетевой маски (т.е. установка битов, соответствующих сетевому префиксу) или
маска хоста (любые биты, которые не являются частью сетевой маски):

 >>> net4 = ipaddress.ip_network('192.0.2.0/24')
>>> net4.сетевая маска
IPv4-адрес('255.255.255.0')
>>> net4.hostmask
IPv4-адрес('0.0.0.255')
>>> net6 = ipaddress.ip_network('2001:db8::0/96')
>>> net6.сетевая маска
IPv6Address('ffff:ffff:ffff:ffff:ffff:ffff::')
>>> net6.hostmask
IPv6-адрес('::ffff:ffff')
 

Распаковка или сжатие адреса:

 >>> addr6.exploded
'2001:0db8:0000:0000:0000:0000:0000:0001'
>>> addr6.сжатый
'2001:db8::1'
>>> net6. взорвался
'2001:0db8:0000:0000:0000:0000:0000:0000/96'
>>> net6.сжатый
'2001:db8::/96'
 

Хотя IPv4 не поддерживает расширение или сжатие, связанные объекты
по-прежнему предоставлять соответствующие свойства, чтобы код, не зависящий от версии, мог
легко убедиться, что для IPv6 используется самая краткая или самая подробная форма
адреса, по-прежнему корректно обрабатывая адреса IPv4.

Сети как списки адресов

Иногда полезно рассматривать сети как списки. Это значит, что можно
индексировать их так:

 >>> сеть4[1]
IPv4-адрес('192.0.2.1')
>>> сеть4[-1]
IPv4-адрес('192.0.2.255')
>>> сеть6[1]
IPv6-адрес('2001:db8::1')
>>> сеть6[-1]
IPv6-адрес('2001:db8::ffff:ffff')
 

Это также означает, что сетевые объекты поддаются использованию списка
Синтаксис проверки членства выглядит следующим образом:

 если адрес в сети:
    # сделай что-нибудь
 

Тестирование сдерживания выполняется эффективно на основе сетевого префикса:

 >>> addr4 = ipaddress. ip_address('192.0.2.1')
>>> addr4 в ipaddress.ip_network('192.0.2.0/24')
Истинный
>>> addr4 в ipaddress.ip_network('192.0.3.0/24')
ЛОЖЬ
 

Сравнения

ipaddress предоставляет несколько простых, надеюсь, интуитивно понятных способов сравнения
объектов, где это имеет смысл:

 >>> ipaddress.ip_address('192.0.2.1') ​​< ipaddress.ip_address('192.0.2.2')
Истинный
 

Исключение TypeError возникает при попытке сравнить объекты
разные версии или разные типы.

Использование IP-адресов с другими модулями

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

 >>> addr4 = ipaddress.ip_address('192.0.2.1')
>>> ул(адрес4)
«192.0.2.1»
>>> интервал (адрес4)
3221225985
 

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

При создании адресных/сетевых/интерфейсных объектов с использованием независимого от версии
заводские функции, о любых ошибках будет сообщено как ValueError с
общее сообщение об ошибке, в котором просто говорится, что переданное значение не было
распознается как объект этого типа. Отсутствие конкретной ошибки
потому что необходимо знать, является ли значение предполагаемым IPv4
или IPv6, чтобы предоставить более подробную информацию о том, почему он был отклонен.

Для поддержки случаев использования, когда полезно иметь доступ к этому дополнительному
детали, конструкторы отдельных классов фактически поднимают
ValueError подклассы ipaddress.AddressValueError и
ipaddress.NetmaskValueError , чтобы точно указать, какая часть
определение не удалось правильно проанализировать.

Сообщения об ошибках становятся значительно более подробными при использовании
конструкторы класса напрямую. Например:

 >>> ipaddress.ip_address("192.168.0.256")
Traceback (последний последний вызов):
...
ValueError: «192.168.0.256» не является адресом IPv4 или IPv6.
>>> ipaddress.IPv4Address("192.168.0.256")
Traceback (последний последний вызов):
...
ipaddress.AddressValueError: октет 256 (> 255) не разрешен в «192.

This entry was posted in Популярное