IP без ошибок. Изучаем принципы работы с IP-адресами - «Новости» » Самоучитель CSS
Меню
Наши новости
Учебник CSS

Невозможно отучить людей изучать самые ненужные предметы.

Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3

Надо знать обо всем понемножку, но все о немногом.

Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы

Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)

Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода

Самоучитель CSS

Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5

Новости

Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости

Справочник CSS

Справочник от А до Я
HTML, CSS, JavaScript

Афоризмы

Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы

Видео Уроки


Наш опрос



Наши новости

       
27-02-2021, 08:06
IP без ошибок. Изучаем принципы работы с IP-адресами - «Новости»
Рейтинг:
Категория: Новости

Стан­дарт IPv4 не содер­жит никаких упо­мина­ний о фор­мате записи адре­сов вооб­ще. Никакой дру­гой RFC тоже ничего не говорит о фор­мате адре­сов IPv4, так что общепри­нятый фор­мат — это не более чем сог­лашение.

И это даже не единс­твен­ное сог­лашение. Фун­кция inet_aton() поз­воля­ет не писать нулевые раз­ряды в кон­це адре­са, нап­ример 192.0.2 = 192.0.2.0. Кро­ме того, она поз­воля­ет вво­дить адрес одним целым чис­лом, 511 = 0.0.1.255.




Читайте также:   На нашем сайте представлено более 20000 тыс. позиций интимных товаров от ведущих производителей "sex-toys". Разнообразие товара в секс шоп "Секрет" г. Сумы, удивит даже самых искушенных, практически все только у нас - секс шоп сумы по доступным ценам ...


Мо­жет ли адрес хос­та закан­чивать­ся на ноль? Конеч­но, может — в любой сети раз­мером боль­ше /23 най­дет­ся хотя бы один такой. Нап­ример, 192.168.0.0/23 содер­жит адре­са хос­тов 192.168.0.1–192.168.1.254, вклю­чая 192.168.1.0.



Ес­ли огра­ничить­ся под­дер­жкой толь­ко пол­ного dot-decimal из четырех групп, без воз­можнос­ти опус­кать нулевые раз­ряды, то выраже­ние (d+).(d+).(d+).(d+) может пой­мать зна­читель­ную часть опе­чаток. Если задать­ся целью, мож­но сос­тавить выраже­ние для любого допус­тимого адре­са, хотя оно и будет доволь­но гро­моз­дким. Луч­ше вос­поль­зовать­ся тем, что его лег­ко раз­делить на груп­пы, и явно про­верить, что каж­дая из них попада­ет в диапа­зон 0–255:


def check_ipv4(s):
 groups = s.split('.')
 if len(groups) != 4:
 for g in groups:
num = int(g)
if (num > 255) or (num < 0):
raise ValueError("Invalid octet value")

С IPv6 все одновре­мен­но про­ще и слож­нее. Про­ще потому, что авто­ры IPv6 учли опыт IPv4 и добави­ли фор­мат записи адре­сов в RFC 4291. О любых аль­тер­натив­ных фор­матах мож­но сме­ло говорить, что они про­тив стан­дарта, и игно­риро­вать. С дру­гой сто­роны, сами фор­маты слож­нее. Основную слож­ность пред­став­ляет сок­ращен­ная запись: груп­пы нулевых раз­рядов мож­но заменять на сим­вол ::, нап­ример 2001:db8::1 вмес­то 2001:db8:0:0:0:0:0:1. Для поль­зовате­ля это, безус­ловно, удоб­но, но для раз­работ­чика все ров­но наобо­рот: раз­делить адрес на груп­пы по дво­ето­чию невоз­можно, нуж­на замет­но более слож­ная логика. К тому же стан­дарт зап­реща­ет исполь­зовать :: боль­ше одно­го раза в одном адре­се, что еще силь­нее усложня­ет задачу.


Так что, если при­ложе­ние под­держи­вает IPv6, для валида­ции адре­сов нужен пол­ноцен­ный пар­сер. Писать его самим нет смыс­ла, пос­коль­ку сущес­тву­ют готовые биб­лиоте­ки, которые пре­дос­тавля­ют и дру­гие полез­ные фун­кции.


 

Проверки по существу


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


Стан­дарт IPv4 не содер­жит никаких упо­мина­ний о фор­мате записи адре­сов вооб­ще. Никакой дру­гой RFC тоже ничего не говорит о фор­мате адре­сов IPv4, так что общепри­нятый фор­мат — это не более чем сог­лашение. И это даже не единс­твен­ное сог­лашение. Фун­кция inet_aton() поз­воля­ет не писать нулевые раз­ряды в кон­це адре­са, нап­ример 192.0.2 = 192.0.2.0. Кро­ме того, она поз­воля­ет вво­дить адрес одним целым чис­лом, 511 = 0.0.1.255. Читайте также: На нашем сайте представлено более 20000 тыс. позиций интимных товаров от ведущих производителей

Теги: CSS

Просмотров: 828
Комментариев: 0:   27-02-2021, 08:06
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

 
Еще новости по теме:



Другие новости по теме: