Ping с определенного интерфейса windows

Команда PING — отправить эхо-запрос по протоколу ICMP на имя или IP-адрес целевого узла

Команда PING это, пожалуй, самая используемая сетевая утилита командной строки. PING присутствует во всех версиях всех операционных систем с поддержкой сети и является простым и удобным средством опроса узла по имени или его IP-адресу.

Для обмена служебной и диагностической информацией в сети используется специальный протокол управляющих сообщений ICMP (Internet Control Message Protocol). Команда ping позволяет выполнить отправку управляющего сообщения типа Echo Request (тип равен 8 и указывается в заголовке ICMP-сообщения) адресуемому узлу и интерпретировать полученный от него ответ в удобном для анализа виде. В поле данных отправляемого icmp-пакета обычно содержатся символы английского алфавита. В ответ на такой запрос, опрашиваемый узел дожжен отправить icmp-пакет с теми же данными, которые были приняты, и типом сообщения Echo Reply (код типа в ICMP-заголовке равен 0) . Если при обмене icmp-сообщениями возникает какая-либо проблема, то утилита ping выведет информацию для ее диагностики.

Формат командной строки:

ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w таймаут] конечноеИмя

-t — Непрерывная отправка пакетов. Для завершения и вывода статистики используются комбинации клавиш Ctrl + Break (вывод статистики и продолжение), и Ctrl + C (вывод статистики и завершение).
-a — Определение адресов по именам узлов.
-n число — Число отправляемых эхо-запросов.
-l размер — Размер поля данных в байтах отправляемого запроса.
-f — Установка флага, запрещающего фрагментацию пакета.
-i TTL — Задание срока жизни пакета (поле «Time To Live»).
-v TOS — Задание типа службы (поле «Type Of Service»).
-r число — Запись маршрута для указанного числа переходов.
-s число — Штамп времени для указанного числа переходов.
-j списокУзлов — Свободный выбор маршрута по списку узлов.
-k списокУзлов — Жесткий выбор маршрута по списку узлов.
-w таймаут — Максимальное время ожидания каждого ответа в миллисекундах.

ping google.com — эхо-запрос к узлу с именем google.com с параметрами по умолчанию — количество пакетов равно 4, длина массива данных = 32 байта.

ping -6 ya.ru — пинг узла ya.ru с использованием протокола Ipv6

ping -a 192.168.1.50 — выполнить пинг с определением имени конесного узла по его адресу.

ping -s 192.168.0.1 computer — пинг узла computer от источника 192.168.0.1. Используется когда на компьютере имеется несколько сетевых интерфейсов.

ping w 5000 ya.ru — пинг с таймаутом ожидания равным 5 секунд ( по умолчанию — 4 сек).

ping -n 5000 -l 1000 ab57.ru — опрос узла ab57.ru 5000 раз, пакетами с данными длиной в 1000байт. Допустимая максимальная длина данных — 65500.

ping -n 1 -l 3000 -f ya.ru — пинг с запретом фрагментации пакета.

ping -n 1-r 3 ya.ru — отправить 1 эхо-запрос на узел ya.ru с отображением первых 3-х переходов по маршруту.

ping -i 5 ya.ru — пинг с указанием времени жизни TTL=5. Если для достижения конечного узла потребуется большее количество переходов по маршруту, то маршрутизатор, прервавший доставку ответит сообщением ”Превышен срок жизни (TTL) при передаче пакета.”

Применение PING для пошаговой диагностики проблем доступа в Интернет:

Обобщенная схема соединения компьютера (планшета, ноутбука домашней сети) с удаленным конечным узлом можно представить следующим образом:

В качестве домашней сети используется наиболее распространенная сеть с IP-адресами 192.168.1.0 /255.255.255.0 . Речь идет об IPv4 – IP протоколе версии 4, где для адресации используется 4 байта. IP- адреса принято представлять в виде десятичных значений байтов, разделяемых точками. Каждое устройство в сети должно иметь свой уникальный адрес. Кроме адреса, в сетевых настройках используется маска сети ( маска подсети). Маска имеет такой же формат представления, как и адрес. Комбинация адреса и маски определяет диапазон адресов, которые принадлежат локальной сети — 192.168.1.0-192.168.1.255. Первый и последний адреса диапазона не назначаются отдельным сетевым устройствам, поскольку используются в качестве адреса сети и широковещательного адреса. Обычно адрес роутера делают равным 192.168.1.1 или 192.168.1.254. Это не является обязательным стандартом, но на практике используется довольно часто. Единичные биты маски определяют постоянную часть IP-адреса сети, а нулевые — выделяемые отдельным узлам. Значение 255 — это байт с установленными в единицу битами. Маска сети служит средством определения диапазона IP-адресов, принадлежащих локальной сети. Устройства с такими адресами достижимы локально, без использования маршрутизации . Маршрутизация — это способ обмена данными с сетевыми устройствами не принадлежащими к данной локальной сети через специальное устройство — маршрутизатор ( router, роутер ). Маршрутизаторы представляют собой специализированные компьютеры с несколькими сетевыми интерфейсами и специализированным программным обеспечением обеспечивающим пересылку IP-пакетов между отправителем и получателем, находящимися в разных сетях. В такой пересылке могут участвовать несколько маршрутизаторов, в зависимости от сложности маршрута. Домашний роутер — простейшая разновидность маршрутизатора, который обеспечивает пересылку пакетов, адресованных во внешние сети следующему по маршруту маршрутизатору в сети провайдера. Следующий маршрутизатор проверяет достижимость адреса конечного узла локально, и либо пересылает ему данные, либо передает их следующему маршрутизатору в соответствии с таблицей маршрутов. Так происходит до тех пор, пока данные не достигнут получателя или закончится время жизни пакета.

Читайте также:  Gamma control mac os

Команда PING можно использовать для диагностики отдельных узлов:

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

ping свой IP или имя — пинг на собственный адрес или имя. Должен завершаться без ошибок, если установлены все программные средства протокола IP и исправен сетевой адаптер.

ping IP-адрес роутера — должен выполняться, если исправна сетевая карта компьютера, исправен кабель или беспроводное соединение, используемые для подключения к роутеру и исправен сам роутер. Кроме того, настройки IP должны быть такими, чтобы адрес компьютера и роутера принадлежали одной подсети. Обычно это так, когда сетевые настройки выполняются автоматически средствами DHCP-сервера маршрутизатора.

ping yandex.ru — выполнить опрос узла с именем yandex.ru . Если опрос завершается с ошибкой, то причиной может быть не только отсутствие связи с маршрутизатором провайдера, но и невозможность определения адреса узла yandex.ru из-за проблем с программными средствами разрешения имен.

ping 8.8.8.8 — выполнить опрос узла с IP-адресом 8.8.8.8 . Если опрос по адресу выполняется без ошибок, а опрос по имени завершается сообщением о неизвестном узле, то проблема в разрешении имен. Причиной может быть неработоспособность DNS-сервера провайдера. В этом случае, можно попробовать сменить его в настройках сетевого соединения на публичные DNS сервера Google с адресами 8.8.4.4 и 8.8.8.8. Также, проблема может быть вызвана плохим качеством связи с провайдером, что сопровождается слишком большим временем отклика и пропаданием пакетов.

ping -t yandex.ru — выполнять ping до нажатия комбинации CTRL+C, При нажатии CTRL+Break — выдается статистика и опрос узла продолжается.

ping -n 1000 -l 500 192.168.1.1 — выполнить ping 1000 раз с использованием сообщений, длиной 500 байт. Пинг пакетами стандартной длины в 32 байта может выполняться без ошибок, а на длинных — с ошибками, что характерно для беспроводных соединения при низком уровне сигнала в условиях интенсивных помех.

ping -n 1 -r 9 -w 1000 yandex.ru — выполнить ping 1 раз (ключ -n 1), выдавать маршрут для первых 9 переходов (-r 9), ожидать ответ 1 секунду (1000мсек)

В результате выполнения данной команды отображается и трассировка маршрута:

Обмен пакетами с yandex.ru [87.250.251.11] с 32 байтами данных:
Ответ от 87.250.251.11: число байт=32 время=36мс TTL=54
Маршрут: 81.56.118.62 ->
81.56.112.1 ->
10.109.11.9 ->
10.109.11.10 ->
195.34.59.105 ->
195.34.52.213 ->
195.34.49.121 ->
195.34.52.213 ->
87.250.239.23

Читайте также:  Spider man ��� mac os

Статистика Ping для 87.250.251.11:

Пакетов: отправлено = 1, получено = 1, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 36мсек, Максимальное = 36 мсек, Среднее = 36 мсек

В данном примере, между отправителе и получателем пакетов выстраивается цепочка из 9 маршрутизаторов. Нужно учитывать тот факт, что в версии утилиты ping.exe для Windows, число переходов может принимать значение от 1 до 9. В случаях, когда этого значения недостаточно, используется команда tracert

Отсутствие эхо-ответа не всегда является признаком неисправности, поскольку иногда по соображениям безопасности, некоторые узлы настраиваются на игнорирование эхо-запросов, посылаемых PING. Примером может служить узел microsoft.com и некоторые маршрутизаторы в сетях небольших провайдеров.

Использование PING в командных файлах.

Нередко, команда PING используется для организации задержек в командных файлах. Выполняется пингование петлевого интерфейса с указанием нужного значения счетчика пакетов, задаваемого параметром -n . Посылка эхо-запросов выполняется с интервалом в 1 секунду, а ответ на петлевом интерфейсе приходит практически мгновенно, поэтому задержка будет приблизительно равна счетчику минус единица:

ping -n 11 127.0.0.1 — задержка в 10 секунд.

Команда PING используется в командных файлах для определения доступности IP-адресов. Поскольку, результат опроса никак не отражается в переменной ERRORLEVEL , то вместо ее анализа используется поиск определенных признаков в данных стандартного вывода PING. Если внимательно посмотреть на сообщения программы ping.exe при опросе доступного и недоступного узла, то можно заметить, что они значительно отличаются

ping 456.0.0.1 — ping на несуществующий адрес

Ответ на такую команду может отличаться от конкретной версии утилиты, и может быть приблизительно таким

При проверке связи не удалось обнаружить узел 456.0.0.1. Проверьте имя узла и повторите попытку.

ping yandex.ru — ping на адрес узла yandex.ru

Ответ на ping доступного узла:

Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55

Таким образом, для решения задачи определения доступности узла в командном файле, достаточно проанализировать характерные слова в выводе ping.exe при успешном ответе. Наиболее характерно в данном случае наличие слова TTL . Оно никогда не встречается при возникновении ошибки и состоит всего лишь из символов английского алфавита. Для поиска «TTL» в результатах ping.exe удобнее всего объединить ее выполнение в цепочку с командой поиска строки символов FIND.EXE (конвейер ping и find). Если текст найден командой FIND, то значение переменной ERRORLEVEL будет равно 0

ping -n 1 COMPUTER | find /I «TTL» > nul
if %ERRORLEVEL%==0 goto LIVE
ECHO computer недоступен
подпрограмма обработки недоступного состояния
.
Exit
:LIVE — начало подпрограмм ы обработки состояния доступности узла
.
.

В более простом варианте можно использовать команды:

PING yandex.ru |find «TTL=» && ECHO Yandex pingable — команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND равно 0, т.е узел yandex.ru отвечает на ping.

PING Server64 |find «TTL=» || ECHO Server64 not pingable — команда ECHO выполняется, если значение ERRORLEVEL, установленное FIND не равно 0, т.е. узел Server64 не ответил на ping.

Ping с определенного интерфейса windows

На машине стоит несколько сетевых карт, и есть возможность выходить в интернет через несколько провайдеров.
Как можно программно произвести Ping через заданный сетевой интерфейс? Хочу добавить в программу функциональность определения непрерывности наличия интернета у различных провайдеров.

От: Roman Odaisky
Дата: 02.11.07 16:33
Оценка:

Здравствуйте, Kimus, Вы писали:

K>На машине стоит несколько сетевых карт, и есть возможность выходить в интернет через несколько провайдеров.
K>Как можно программно произвести Ping через заданный сетевой интерфейс? Хочу добавить в программу функциональность определения непрерывности наличия интернета у различных провайдеров.

ping -I интерфейс

От: Аноним
Дата: 02.11.07 22:51
Оценка:

Здравствуйте, Roman Odaisky, Вы писали:

Читайте также:  Index options windows 10

RO>ping -I интерфейс
Я пытался изучить команду Ping на предмет возможности указать интерфейс.

Вот что она умеет делать на моей машине:

Использование:
ping [-t] [-a] [-n ] [-l ] [-f] [-i ] [-v ]
[-r ] [-s ] [[-j ] | [-k ]]
[-w ] [-R] [-S ] [-4] [-6]

Параметры:
-t Отправка пакетов на указанный узел, пока вы не прекратите
опрос узла вручную. Для вывода статистики и продолжения
опроса нажмите +
, для прекращения опроса
нажмите + .
-a Определение имени узла по адресу.
-n Число отправляемых запросов.
-l Размер буфера отправки.
-f Установка флага, запрещающего фрагментацию пакета
(только IPv4).
-i Задание срока жизни пакета («Time To Live»).
-v Задание типа службы («Type Of Service») (только IPv4).
-r Запись маршрута для указанного числа прыжков
(только IPv4).
-s Штамп времени для указанного числа прыжков (только IPv4).
-j Свободный выбор маршрута по списку узлов (только IPv4).
-k Жесткий выбор маршрута по списку узлов (только IPv4).
-w Таймаут для каждого ответа в миллисекундах.
-R Трассировка кругового пути (только IPv6).
-S Используемый адрес источника (только IPv6).
-4 Обязательное использование протокола IPv4.
-6 Обязательное использование протокола IPv6.

У меня Windows 2003. В каких операционных системах допустима опция -I?

От: Michael Chelnokov
Дата: 03.11.07 10:26
Оценка:

Здравствуйте, Аноним, Вы писали:

А> -j Свободный выбор маршрута по списку узлов (только IPv4).
А> -k Жесткий выбор маршрута по списку узлов (только IPv4).

Одна из этих, видимо.

От: Michael Chelnokov
Дата: 03.11.07 10:35
Оценка:

Здравствуйте, Roman Odaisky, Вы писали:

RO>ping -I интерфейс

$ man ping
.
-I iface
Source multicast packets with the given interface address. This
flag only applies if the ping destination is a multicast address.
.
$ uname -srp
FreeBSD 6.2-STABLE i386

От: Kimus
Дата: 03.11.07 13:09
Оценка:

Здравствуйте, Michael Chelnokov, Вы писали:

MC>Здравствуйте, Roman Odaisky, Вы писали:

RO>>ping -I интерфейс

MC>$ man ping
MC>.
MC> -I iface
MC> Source multicast packets with the given interface address. This
MC> flag only applies if the ping destination is a multicast address.
MC>.
MC>$ uname -srp
MC>FreeBSD 6.2-STABLE i386

Ну да, во FreeBsd я эту команду видел . И с радостью бы использовал, но приложение под Windows и переориентировать его не представляется возможным (требование заказчика). Желательно что-то, что будет работать под Windows и займет минимум усилий по реализации, чтобы не изобретать велосипед.

От: Michael Chelnokov
Дата: 03.11.07 16:54
Оценка:

Здравствуйте, Kimus, Вы писали:

K>Желательно что-то, что будет работать под Windows и займет минимум усилий по реализации, чтобы не изобретать велосипед.

Я не помню как там в IPHelper, но вообще-то достаточно сокет забиндить на нужный интерфейс.

От: DOOM
Дата: 05.11.07 10:00
Оценка:

Здравствуйте, Michael Chelnokov, Вы писали:

MC>Здравствуйте, Аноним, Вы писали:

А>> -j Свободный выбор маршрута по списку узлов (только IPv4).
А>> -k Жесткий выбор маршрута по списку узлов (только IPv4).

MC>Одна из этих, видимо.

Не верно. Это совсем другая сказка.

От: DOOM
Дата: 05.11.07 10:29
Оценка:

Здравствуйте, Аноним, Вы писали:

А>У меня Windows 2003. В каких операционных системах допустима опция -I?
Как ни странно, во всех, кроме винды.

Если хочешь пытаться сделать пинг программно, то научись определять как-нибудь связь IP-интерфейс, а потом попробуй биндиться на конкретный адрес — должно по логике помочь.

От: Cruser
Дата: 08.11.07 12:16
Оценка: -1

Здравствуйте, Kimus, Вы писали:

K>Здравствуйте!

K>На машине стоит несколько сетевых карт, и есть возможность выходить в интернет через несколько провайдеров.
K>Как можно программно произвести Ping через заданный сетевой интерфейс? Хочу добавить в программу функциональность определения непрерывности наличия интернета у различных провайдеров.

Перед пингом нужно задавать default маршрут через этот интерфейс:

route add 0.0.0.0 mask 0.0.0.0
ping .

route add 0.0.0.0 mask 0.0.0.0
ping .

Оцените статью