Необычные нотации IP - PullRequest
       29

Необычные нотации IP

3 голосов
/ 18 февраля 2012

Я знаю, что в IPv4 можно писать IP как целое число, например 2130706433 вместо 127.0.0.1.

В чем причина такой возможности?

Есть ли аналогичная запись для IPv6?

Я попытался ping -6 1 как попытка пропинговать ::1, но это не сработало (хост не существовал).

Ответы [ 2 ]

4 голосов
/ 18 февраля 2012

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

  • 127.0.0.1
  • 0177.0.0.1
  • 0x7f.0.0.1
  • 127.0.1
  • 127,1
  • 2130706433
  • 017700000001
  • 0x7f000001

Первое обозначение (полная 8-битная десятичная точка) широко используется, остальные редко используются, но допускаются стандартной функцией inet_addr POSIX. В более новых inet_ntop / inet_pton стандартных функциях POSIX, которые обрабатывают адреса как IPv4, так и IPv6, была сохранена только первая знакомая нотация.

С IPv6, 16-битная шестнадцатеричная нотация с дополнительным десятичным точечным трейлером (для встроенного IPv4), а также дополнительное сжатие нуля - вот что определяет стандарт.

например:

  • 2001: 0db8: 85a3: 0000: 0000: 8a2e: 9370: 7334
  • 2001: 0db8: 85a3 :: 8a2e: 9370: 7334

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

1 голос
/ 18 февраля 2012

IPv4-адрес - это просто 32-битное число. Вы можете представить его любым способом, каким вы можете представить такое число (десятичное, шестнадцатеричное, восьмеричное). Пунктирная запись a.b.c.d гораздо более практична.

Вы можете сделать то же самое с адресами IPv6, за исключением того, что это 128-битные числа - еще сложнее найти в десятичной форме.

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

...