Как по ping узнать операционную систему хоста

Как по ping узнать операционную систему хоста

Как по ping узнать операционную систему хоста

Добрый день уважаемые читатели блога, сегодня я хочу вас спросить, а умеете ли вы по команде пинг определить какое устройство или операционная система вам отвечает, если нет, то вы пришли по адресу и я вам расскажу еще одно назначение утилиты ping. Думаю данный материал, будет полезен как новичкам, так и продвинутым пользователям, особенно когда вы ищите причину неисправности в сети или сервисе, встречал много раз, что вы думаете, что вам отвечает один сервер, а на самом деле это другой, так как кто то, что то поменял и не задокументировал.

Значение ttl

Ранее я вам рассказывал про модель OSI, и там у сетевого пакета, есть такое значение TTL (Time To Life), если перевести, то это время жизни пакета. TTL это некий счетчик, который уменьшается на единицу, при прохождении сетевого пакета или как его еще называют, кадра через маршрутизатор, делается это для того, чтобы он, при невозможности найти пункт назначения, вечно не бегал по роутерам, создавая нагрузку и паразитный трафик.

Именно время жизни пакета (TTL) нам и поможет, определить кто там с другой стороны. У каждой операционной системы этот показатель свой, так например

  • Cisco TTL > равен 255
  • ttl windows > равен 128
  • Unix ttl > равен 64
  • Android и IOS Apple> 65
  • Lumia > 130

Как видите у всех он разный, и давайте разбираться, для примера я пропингую коммутатор Cisco, для этого открываем командную строку Windows, у вас может и linux быть.

Пишем ping 10.152.1.1 (у вас может быть другой адрес)

Как видите значение ttl тут 255, что и показывает, что отвечает вам IOS у устройства Cisco, как видите команда ping отлично узнала операционную систему хоста с другой стороны.

значение ttl

Попробуем пропинговать unix систему, у меня например в локальной сети шлюзом выступает Kerio Control, на linux версии. Пингуем.

Пишем ping 192.168.5.1 (у вас может быть другой адрес)

Как видите тут значение ttl равно 64, что означает unix платформу, так могут отвечать различные D-link устройства и другие домашние роутеры.

значение ttl-2

Давайте еще проверим Windows платформы, например у меня есть Windows 8.1 в локальной сети, сделаем пинг. И видите, что оно равно 128, как я и говорил.

значение ttl-4

Вот вам. тогда загадка, пингуем Windows Server 2012 R2, на нем есть веб сайт relay.aetp.ru. Что вы видите, а то что значение ttl равно 120, но в Windows же 128 по умолчанию идет, не стыковка 🙂

значение ttl-5

Все дело в хопах, помните в определении я вам говорил, что значение ttl уменьшается на единицу при следующем шаге и проходе через маршрутизаторы, давайте произведем трассировку до данного адреса.

tracert relay.aetp.ru

Как видите сетевой пакет проходит не один хо до нужного адреса, и на определенных этапах он теряет от ttl по единичке. Все теперь вы знаете как узнать ttl windows.

значение ttl-6

Как изменить ttl windows

Давайте рассмотрим ситуацию, что вам нужно изменить ttl windows, поверьте бывают такие ситуации в жизни, примером может быть компания Yota, с ее дурацкой политикой ограничений Yota на раздачу Wi-Fi. Представим ситуацию, что взяли себе оператора Yota на телефон и решили раздать Wifi на ноутбук, но вы даже не знали подводных камней. в плане фильтрации пакетов со стороны Yota. Она жестко режет скорость, и режет она посредством значения ttl, оно должно быть 64, а если у вас дополнительное устройство, то это лишний хоп и значит ttl меньше, вот для обхода этой подставы с раздачей Wifi на ноутбук от Yota, мы и изменим ttl. Менять ttl мы будем в Windows 10, но данные действия подойдут и для Windows 7 и 8.1.

Нажимаем Win+R и вводим regedit

В итоге у вас откроется редактор реестра Windows. Вам нужно перейти в ветку реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

В разделе вам нужно создать значение, все зависит от разрядности Windows, если 32 битная, то создаем параметр DWORD (32 бита), если 64 битная, то QWORD (64 бита). Я создаю QWORD.

изменить ttl windows-1

Задаем ему имя DefaultTTL и значение и устанавливаем его значение 65 для Android и iOS или 130 — Lumia, Nokia, Microsoft Phone и обязательно перезагружаемся !!!

эта лишняя единица, как раз и пойдет на лишний скачок через ваш телефон с ноутбука и Yota ничего не увидит, как видите изменить ttl windows 10, очень просто.

изменить ttl windows-2

Как изменить ttl Ubuntu, Debian

И так с Windows мы уже научились, менять ttl, но не у всех стоит именно он, есть люди с Ubuntu например, давайте учиться как обойти ограничение на раздачу интернета через телефон на компьютер с Ubuntu на борту, в случае, если ваш оператор Йота, вы должны сделать несколько простых вещей.

1) Нажать одновременно Ctrl+Alt+T. Так вы вызовете терминал.

2) Ввести первую команду:

sudo vi /etc/init.d/local.autostart

Нажать Enter.

3) Попросит ваш пароль, вводим, жмем Enter, далее жмем i — это введет редактор vi в режим редактирования.

4) Вводим сам скрипт фиксирования TTL Ubuntu на значении 65, если у вас Android или iOS (у них стандартный TTL=64), если вы обладатель Люмии, где стандартный TTL равен 128, вам вместо 65 нужно прописать 129. Все это по простейшей формуле, ttl на компе должен быть на 1 больше, чем ttl на телефоне, с которого вы раздаете. Теорию я вам рассказал, а теперь сам скрипт:

#!/bin/bash
sudo iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65 (вот это значение меняйте сами, теория выше в помощь)

5) Далее, для окончания редактирования жмем Esc. Потом сохраняем файл, зажимая Shift+ZZ.

6) Теперь необходимо проставить скрипту права на запуск:

sudo chmod +x /etc/init.d/local.autostart

Нажимаем Enter.

7) Теперь последнее, добавляем все это дело в автозапуск:

sudo update-rc.d local.autostart defaults 80

8) Нажимаем Enter. Все будет делаться автоматически и без вашего участия.

Как изменить ttl MacOS

Ну и конечно, нельзя обижать яблочников 🙂 Для изменения ttl на mac делаем следующее

Идем в /Library/StartupItems. Открываем терминал и прописываем: ~> cd /Library/StartupItems/

Создаем там папку (например, это будет yota). В терминале пишем: /Library/StartupItems> sudo mkdir yota

Идем туда. В терминал вставляем: /Library/StartupItems> cd yota/

4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
/Library/StartupItems/yota> sudo vim yota
И тут откроется редактор Vim! Сюда копируем сам скрипт:

# Скрипт смены ttl на Mac OS X:

#!/bin/sh
sudo sysctl -w net.inet.ip.ttl=65

И закрываем Vim с сохранением результата, вводим в виме (редакторе): yota

5) Создаем файл параметров StartupParameters.plist.
/Library/StartupItems/yota> sudo vim StartupParameters.plist

И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
Самое главное, чтобы в строчке Provides было прописано то же имя, что и название скрипта и название папки:

{
Description = 'Add static routing tables';
Provides = ('yota');
Requires = ('Network');
OrderPreference = 'None';
}

И опять закрываем Vim с сохранением результата, для этого вводим: w! StartupParameters.plist

6) Выставляем права на выполнение нашему скрипту.
/Library/StartupItems/fuckingyota> sudo chmod 755 yota

7) в итоге получаем: /Library/StartupItems/yota> ll

9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
/Library/StartupItems/yota> sudo SystemStarter start fyota

Резюмируя мы с вами рассмотрели какие значения ttl у каждой операционной системы, рассмотрели для чего они. Мы научились менять ttl на самых распространенных системах, если есть вопросы пишите их в комментариях.

16 Responses to Как по ping узнать операционную систему хоста

  1. Таня:

    Прикольное использование команды пинг

  2. Алексей:

    Привет! Я играю в варфейс. TTL на альфа 56. У меня винда 7 (там 128TTL). Какое значение TTL мне выставить в винде. Заранее спс.

  3. Иван Семин:

    Я если честно не игрок и не знаю, что такое варфейс, в Windows уже ttl сделан таким какой он должен быть, а в чем проблема оставаться с параметром 128?

  4. Станислав:

    А как изменить TTL Android? И сколько поставить, что бы нормально раздавать wi-fi?

  5. Иван Семин:

    Есть приложение TTL Editor, но там требуются root права.

  6. Станислав:

    Это приложение не работает для оператора мтс. Пришло мне уведомление, что с 10.11.2016 за раздачу инета на тарифе «безлимитище» будут снимать 30 зублей. Я установил это приложение. Сегодня пришло уведомление, что я использую передачу инета. И с меня сняли 30 р..

  7. Иван Семин:

    Уроды, что сказать, я поищу еще варианты, если найдете что то рабочее, напишите в комментарии

  8. Владимир:

    Здравствуйте! Подскажите, у меня симка вставлена в роутер от МТС 823F, я с ним не чего не делал, я раздаю по WiFi подключаю ноутбук, я на ноутбуки сменил TTL 65, и бывает подключаются смартфон к роутеру, и мне приходят смс Что я раздаю интернет, не подскажите сто сделать? Спасибо!

  9. Иван Семин:

    Возможно у них еще по каким то параметрам идет определение, я поизучаю данный вопрос

  10. МАкс:

    Почему для виндовс указываем 130, а для ибунту 129???

  11. Иван Семин:

    Специфика ОС

  12. Веселен:

    Товарищи помогите. Я с макбуками не знаком вообще. задача — TTL поменять на постоянный равный 65. НО что то у меня не работает смена TTL. Делаю все по инструкции, все получается. создаю файл в папке etc, прописываю туда net.inet.ip.ttl=65. перезагружаю проверяю Ping-ом в терминале, пишет ttl=51, причем пингую разные сайты и он каждый раз разный ТТЛ показывает, то 55, то 51, то 53! как так то?! пробую в терминале сменить TTL командой net.inet.ip.ttl=65 (как в инструкции в инете), он пишет что все отлично ttl сменил со стандратного 64 на 65. Не перезагружаясь сразу иду проверять командой ping и он опять пишет каждый раз разный ттл, например пинг до google.com ТТЛ=55, до яндекса ТТЛ=51 и т.д. мак бук эйр — os el capitan 10.11.2 Помогите победить этот дьявольский аппарат. (блин как же на винде все легко, а тут я только полчаса потратил чтоб понять как попасть в папку etc). помогите

  13. Иван Семин:

    Разные ttl До сайтов, разные потому, что до них ваш пакет идет через разное количество узлов, и на каждым ttl уменьшается на 1.

  14. Дмитрий:

    а как узнать Tyler на Sony ps3? Спасибо!

  15. Дмитрий:

    а как узнать Ttl на Sony ps3? Спасибо!

  16. Иван Семин:

    так как операционная система на sony playstation 3 GNU/Linux, то и ttl как нLinux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

я в гугл