Введення в інший адресу IP, ніж те, що я ввів [дублікат]


19

На це питання вже є відповідь тут:

Чи можете мені хто-небудь пояснити, чому CMD надсилає іншу IP-адресу, ніж ту, яку я шукаю?

Приклад


Це дублікат, я просто не можу пригадати, де
канадський Люк,

@DavidPostill, це не дублікат, тому що в питанні, з яким ви пов’язані, система обробляла числа з і без провідних нулів як десяткові, але в цьому питанні досить зрозуміло, що система інтерпретує провідні нулі як вісімкові числа.
Сем Скуче

3
@SamSkuce Ви читали найвищу відповідь? "Наприклад, якщо ви використовуєте 3-розрядне число, що починається з нуля (або двоцифрове, починаючи з нуля, ...), то ping вважатиме, що цифри є вісімковими."
DavidPostill

1
Крім того, коли ми пропонуємо повторюваний пост, ОП просять переглянути питання та відповіді, щоб побачити, чи це те саме
Канадський Люк

Відповіді:


45

У Windows CMD, якщо ви поставите провідні нулі на IP-адресу, означає восьмерику .

Він трактує 016як 16 octalі перетворює його 14 decimal.

Ви можете використовувати восьмеричні, десяткові або шістнадцяткові позначення, як у наступному прикладі:

22.101.31.153 (decimal)
026.0145.037.0231 (octal)
0x16.0x65.0xF1.0x99 (hexadecimal)

3
Ого. Це жахлива незадокументована "особливість" . Виявляється, Chrome робить це також ( 4.4.4.8і 4.4.4.010рівнозначно)
Коул Джонсон

3
Ну BEEP, він працює і з hex! Це робить старий ping 10.1000001вигляд майже здоровим ... ping 10.0xDEAD... !!!
користувач3710044

38
Це ні страшно, ні незадокументовано; це регулярні позначення IPv4-адрес
sleblanc

5
@LukeMcGregor Ні. Я думаю, що сам стандарт поганий. Я думаю, що вести 0 восьмеричних позначень погано. І хоча я радий, що Microsoft дотримувався стандарту, я вважаю за краще, щоб він був захований за комутатором для зручності використання, або хоча б якась інформація, яка говорить про те, що певне число читається як вісімковий, і вам слід залишити поза 0, якщо ви цього не хочете.
trlkly

4
Люди, які обробляють IP-адреси, повинні зрозуміти, що вони є, перш ніж використовувати їх. Провідні нульові восьмеричні позначення досить поширені, що це помилка, яку ви зробите лише один раз. Кінцеві користувачі, як правило, не обробляють IP-адреси або, принаймні, вони не повинні змінювати представлення. Якщо в посібнику для вашого маршрутизатора написано "підключитися до 172.16.0.1", не слід вводити "172.016.000.001".
sleblanc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.