Преобразование третьей формы IPv6 / IPv4?
Я читаю о том, как настроить IPv6 в Ubuntu, я попал в раздел о чтении адресов IPv6, и хотя первые два примера имеют для меня смысл, последний немного ускользает от моего понимания, так как это было несколько лет назад мой последний сетевой урок:
Как преобразовать третью форму в длинную форму?
Вот пример, с которым у меня проблемы:
- третья форма: - 2002:: 10: 0.0.1
- полнаяформа: - 2002: 0000: 0000: 0000: 0000: 0000: 0:00:0001
- каноническая форма: - 2002:: a00: 1
Я понимаю гекс, поскольку вместо того, чтобы заканчивать числом десять, когда вы считаете больше девяти, вы в конечном итоге получаете A, B, C, D, E и F, прежде чем увеличивать цифру в следующем столбце.
Не могли бы вы показать мне, как это работает с использованием математики, а не просто онлайн-конвертер JavaScript?
Спасибо!
2 ответа
В IPv4 каждый байт представлен числом от 0 до 255; в IPv6 вместо этого используется шестнадцатеричное представление от 00 до ff. Преобразование, которое здесь выполняется, заключается в сопоставлении четырех байтов адреса IPv4 с последними 4 байтами адреса IPv6:
IPv4:
aaa.bbb.ccc.ddd
IPv6:
XXXX::AABB:CCDD
Итак, с вводом 10.0.0.1
байты 0a
, 00
, 00
, 01
; ведущий к:
::0a00:0001
(который сокращается до ::a00:1
)
Для другого примера, давайте возьмем 192.168.50.254
:
::c0a8:32fe
Вы можете посмотреть на преобразование в различные форматы, используя v6decode; попробуйте навести курсор на разные части адреса, чтобы увидеть, как они соотносятся между различными форматами.