Мы обычно пишем IP-адреса в виде четырех разделенных точками чисел, таких как 12.34.56.78 , но адрес - это просто число, и его можно записать другими способами.Например, 12.34.56.78 также можно записать как 12.34.14414 или 12.2242638 или 203569230 или 0xc22384e или 0xc.0x22.0x38.0x4e .
Форма, разделенная четырьмя точками, фактически является представлением числа в 256-значном числе, поэтому для преобразования из одного большого числа N в форме, разделенной четырьмя точками ABCD , вы вычислите эти четыре значения:
A = N / 256 / 256 / 256
B = N / 256 / 256 % 256
C = N / 256 % 256
D = N % 256
Таким образом, ваш 38263628 эквивалентен 2.71.219.76
dig
и nslookup
не работают с простыми числами, поскольку они обрабатывают свои аргументы как строки, даже если известно, что аргументы представляют IP-адреса.(Например, man dig
говорит, что для опции -x
требуется адрес в четырехточечной форме. Это потому, что dig
просто хочет рассматривать его как строку, которую можно разбить на точки и переставить в in-addr.arpa
query.)
Однако большинство команд, которые преобразуют свои аргументы в фактические номера IP-адресов, принимают любой из числовых форматов.Попробуйте это с ping
(который будет показывать адрес в четырехточечном формате, когда он показывает его результаты):
$ ping 203569230
PING 203569230 (12.34.56.78): 56 data bytes
...
Это также дает вам простой способ преобразовать любое число в четырехточечную форму- просто укажите число в качестве аргумента ping
и позвольте ему выполнить преобразование за вас.