Комментарии 11
этот язык — не самый дружелюбный в плане работы с IPv6А какие языки являются дружелюбными в этом плане?
Для того же Python есть хотя бы стандартная либа, которая умеет побольше, чем упаковывать и распаковывать.
а зачем вы писали с нуля?
с ходу на packagist вижу 2 готовые либы
https://github.com/mlocati/ip-lib
https://github.com/rlanvin/php-ip
Ещё пару упражнений. 64.233.177.101/32 и 2607:f8b0:4002:c08::8b/128 — один конкретный адрес.Далеко не всегда идет привязка IPv4 к IPv6.
Если по-простому, то очень часто (на самом деле почти всегда) используется так называемый «Stateless Autoconfiguration». Это когда в сеть транслируется только префикс /64 размера (стандартный размер префикса для локальной сети), а компьютеры резервируют IPv6-адреса подставляя к префиксу свой IPv6 Link-Local адрес. IPv6 Link-Local адрес генерируется на основе MAC-адреса интерфейса и имеет почти уникальный номер.
function getRangeBoundary ($ip, $cidr, $which, $ipIsBin = false, $returnBin = false) {
Кажется это стоит отрефакторить.
Кстати, а в этой функции не будет проблем со знаковым битом?
Еще ip6 адрес может выглядеть так:
::1
FE80::1
FE80::1%12
FE80::1%eth0
FE80--1s12.ipv6-literal.net (это виндовыйкостыль способ кодирования для сетевых путей)
А еще endpoint-ы могут быть с портом
[FE80::1%12]:5000
::1
FE80::1
FE80::1%12
FE80::1%eth0
FE80--1s12.ipv6-literal.net (это виндовый
А еще endpoint-ы могут быть с портом
[FE80::1%12]:5000
спасибо за инфу, интересная статья
packagist.org/packages/s1lentium/iptools Решение всех велосипедов ) пол миллиона скачиваний )
IPv6 $43.20 — Ого
В myloc и hetzner бесплатно /64 IPv6 на сервер. Имейте ввиду ребята)
Наткнулся на статью, так как сам столкнулся с ipv6 в php.
$mask = str_repeat('f', ceil($cidr / 4));
$mask .= dechex(4 * ($cidr % 4));
Похоже неправильно считается маска.
Округление в большую сторону. Почему? (Это же сразу лишний f)
dechex(4 * ($cidr % 4)); будет от остатка 4 8 12 (4 8 c). А должно быть 8 c e.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Работа с IPv6 в PHP