Как пинговать с определенного интерфейса в windows

Обновлено: 08.07.2024

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

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

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 -a 192.168.1.50 - выполнить пинг с определением имени конесного узла по его адресу.

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

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

Схема подключения к целевому узлу через интернет

В качестве домашней сети используется наиболее распространенная сеть с 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-пакетов между отправителем и получателем, находящимися в разных сетях. В такой пересылке могут участвовать несколько маршрутизаторов, в зависимости от сложности маршрута. Домашний роутер — простейшая разновидность маршрутизатора, который обеспечивает пересылку пакетов, адресованных во внешние сети следующему по маршруту маршрутизатору в сети провайдера. Следующий маршрутизатор проверяет достижимость адреса конечного узла локально, и либо пересылает ему данные, либо передает их следующему маршрутизатору в соответствии с таблицей маршрутов. Так происходит до тех пор, пока данные не достигнут получателя или закончится время жизни пакета.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Таким образом, для решения задачи определения доступности узла в командном файле, достаточно проанализировать характерные слова в выводе 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 через заданный сетевой интерфейс? Хочу добавить в программу функциональность определения непрерывности наличия интернета у различных провайдеров.

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

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

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

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

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

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

Использование:
ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i <TTL>] [-v <TOS>]
[-r <число>] [-s <число>] [[-j <список_узлов>] | [-k <список_узлов>]]
[-w <таймаут>] [-R] [-S <источник>] [-4] [-6] <конечный_узел>

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


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

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

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

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

Здравствуйте, 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

Здравствуйте, 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 и займет минимум усилий по реализации, чтобы не изобретать велосипед.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ping – утилита командной строки, которая нужна для проверки подключения к другому компьютеру на уровне IP. Принцип работы очень простой: команда ping ip отправляет серию небольших пакетов данных на указанное устройство, а затем показывает время ответа.

Ping – основная команда TCP/IP, которая используется для устранения неполадок подключения, доступности и разрешения имени. Она также позволяет узнать имя и IP-адрес компьютера.

Синтаксис команды ping

Команда ping в Windows имеет следующие параметры, которые позволяют решать разные задачи:

Чтобы посмотреть в командной строке (cmd) ping-команды, вызовите справку:

Справка Ping на Windows

На Linux параметры команды отличаются. Чтобы посмотреть доступные опции, выполните в терминале команду:

Справка ping

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

Простая проверка доступности

Это то, что делали многие пользователи, – пинговали популярные ресурсы, чтобы убедиться, что интернет на их компьютере работает. Эта же команда используется для проверки доступности.

Windows отправит только 4 запроса, после чего выдаст статистику для указанного адреса. Можно убрать это ограничение, указав параметр -t.

Чтобы прервать отправку и получить статистику, нажимаем сочетание клавиш Ctrl+C.

Проверка доступности сервера

По умолчанию команда ping IP-адреса на Linux посылает пакеты, пока вы не прервете их отправку вручную с помощью сочетания клавиш Ctrl+C. Чтобы ограничить количество, укажем нужное число. Например:

Изменение интервала между отправкой пакетов

По умолчанию пакеты отправляются с интервалом в одну секунду. Но можно установить другое время.

Для установки значений меньше 0.2 секунды требуются права суперпользователя (sudo).

Массовая отправка пакетов для нагрузочного тестирования

Эта возможность также доступна только суперпользователям:

Изменение размера пакета

По умолчанию размер пакета – 32 байта. Можно установить другой размер:

Включение звукового сигнала

Если ответа от хоста нет, отправляем эту команду:

Затем начинаем искать причину сбоя. После ее устранения воспроизведется звуковой сигнал. Он говорит о том, что хост теперь отвечает.

Вывод статистики ping

Чтобы не засорять терминал лишней информацией, пропустим ответы хоста и сразу получим статистику:

А можно, наоборот, получать статистику выполнения без прерывания команды. Для этого нужно нажать сочетание клавиш CTRL + |.

В сети интернет, в частности, на форумах, в случае возникновения проблемы с подключением к какому-либо узлу (серверу), рекомендуют проверить пинг или выполнить трассировку маршрута и таким образом проверить доступность сервера.

Однако не всегда можно встретить информацию о том, как именно выполняется эта проверка: как пинговать или как сделать трассу.

Содержание

Проверка пинга

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

1) Пуск -> Все программы -> Стандартные -> Командная строка

2) Пуск -> Выполнить -> cmd

cmd

В данной ОС существует множество терминалов, поэтому для этих целей можно использовать любой из установленных на ПК. Обычно стандартный терминал можно запустить сочетанием клавиш CTRL+ALT+T.

Запуск терминала в Linux

Итак, чтобы пропинговать определенный сервер, необходимо выполнить команду:

Например, для пинга адреса 11.222.33.44 необходимо выполнить команду:

Ниже приведён пример результатов выполнения пинга одного из IP адресов.

Как проверить пинг и трассировку

Как видно из результатов, было передано и получено 4 пакета размером 32 байта. Время обмена одним пакетом составило 47 милисекунд.

Стоит отметить, что в Windows по умолчанию выполняется отправка только 4 пакетов. В Linux обмен пакетами продолжается до тех пор, пока пользователь самостоятельно не остановит процесс сочетанием клавиш CTRL+C. Чтобы запустить ping аналогичным образом в Windows, необходимо использовать параметр -t. Например:

Остановка обмена пакетами выполняется тем же сочетанием клавиш – CTRL+C.

Установка количества отправляемых пакетов

Чтобы задать максимальное количество отправляемых пакетов, необходимо использовать команду следующего вида:

Изменение размера отправляемых пакетов

Чтобы выполнить ping с использованием пакетов определенного размера (в байтах), необходимо использовать следующую команду:

В данном случае производилась отправка пакетов размером в 64 байта.

Проверка трассировки

Трассировка маршрута может показать скорость прохождения пакетов между маршрутизаторами, которые соединяют ПК, с которого идут запросы, и конечный сервер.

Проверка трассировки

Для выполнения трассировки используется следующая команда:

Стоит отметить, что по умолчанию при трассировке также выполняется DNS-запрос на разрешение IP адреса в доменное имя для каждого проходящего маршрутизатора. Эту опцию можно отключить, таким образом, сократив время получения результатов трассировки.

Чтобы активировать эту опцию необходимо использовать следующий вид команды:

Команда Ping в командной строке в Windows 10

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

Доступность команды пинга

Команда Ping в командной строке в Windows 10

Команда ping доступна из командной строки в операционных системах Windows 10 , Windows 8 , Windows 7 , Windows Vista и Windows XP . Команда ping также доступна в более старых версиях Windows, таких как Windows 98 и 95.

Команду ping также можно найти в командной строке в меню « Дополнительные параметры запуска» и « Параметры восстановления системы».

Наличие некоторых команд пинг переключателей и другой команды пинг синтаксис может отличаться от операционной системы для операционной системы.

Синтаксис команды Ping

ping [ -t ] [ -a ] [ -n count ] [ -l размер ] [ -f ] [ -i TTL ] [ -v TOS ] [ -r count ] [ -s count ] [ -w тайм-аут ] [ — R ] [ -S srcaddr ] [ -p ] [ -4 ] [ -6 ] цель [ /? ]

См. Как читать синтаксис команды, если вы не уверены, как интерпретировать синтаксис команды ping, как описано выше или в таблице ниже.

Параметры команды Ping
Вещь объяснение
-t Использование этой опции свистеть цель , пока не заставит его остановить с помощью Ctrl + C .
-a Этот параметр командной пинг будет решить, если это возможно, имя хоста из IP — адреса цели .
-n кол Эта опция устанавливает количество отправляемых эхо-запросов ICMP от 1 до 4294967295. Команда ping отправит 4 по умолчанию, если -n не используется.
-l размер Используйте эту опцию, чтобы установить размер в байтах пакета эхо-запроса от 32 до 65 527. Команда ping отправит 32-байтовый эхо-запрос, если вы не используете опцию -l .
-f Используйте эту опцию команды ping, чтобы предотвратить фрагментацию эхо-запросов ICMP маршрутизаторами между вами и целью . Параметр -f чаще всего используется для устранения неполадок тракта максимального блока передачи (PMTU).
-i TTL Этот параметр устанавливает значение времени жизни (TTL), максимальное значение которого составляет 255.
-v TOS Эта опция позволяет вам установить значение Типа обслуживания (TOS). Начиная с Windows 7, эта опция больше не работает, но все еще существует по причинам совместимости.
-r кол Используйте эту опцию команды ping, чтобы указать количество прыжков между вашим компьютером и целевым компьютером или устройством, которое вы хотите записать и отобразить. Максимальное значение счетчика равно 9, поэтому используйте команду tracert, если вам интересно просмотреть все переходы между двумя устройствами.
рассчитывать Используйте эту опцию, чтобы сообщить время в формате Internet Timestamp, что каждый эхо-запрос получен и эхо-ответ отправлен. Максимальное значение для счетчика равно 4, что означает, что только первые четыре прыжка могут иметь отметку времени.
время ожидания Задание значения тайм-аута при выполнении команды ping регулирует количество времени в миллисекундах, в течение которого ping ожидает каждого ответа. Если вы не используете опцию -w , используется значение времени ожидания по умолчанию 4000, то есть 4 секунды.
Эта опция указывает команде ping проследить путь туда и обратно.
-S srcaddr Используйте эту опцию, чтобы указать адрес источника.
-п Используйте этот переключатель, чтобы пропинговать адрес поставщика виртуальной сети Hyper-V .
-4 Это заставляет команду ping использовать только IPv4, но необходимо, только если целью является имя хоста, а не IP-адрес.
-6 Это заставляет команду ping использовать только IPv6, но, как и в случае с параметром -4 , это необходимо только при проверке имени хоста.
цель Это пункт назначения, который вы хотите пропинговать, либо IP-адрес, либо имя хоста.
/? Используйте переключатель справки с командой ping, чтобы показать подробную справку о нескольких параметрах команды.

-F , -v , -r , -s , -j и -k опции работают при пинге только IPv4 адреса. -R и -S опции работают только с IPv6 .

Другие менее часто используемые переключатели для пинги EXIST включая [ -j хост-список ], [ -k хост-список ] и [ -c отсек ]. Выполнить пинг /? из командной строки для получения дополнительной информации об этих параметрах.

Примеры команд Ping

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

В приведенном выше примере мы пропингуем 127.0.0.1 , также называемый IP-адрес локального хоста IPv4 или IPv4- петлевой IP-адрес , без параметров.

Использование команды ping для проверки связи 127.0.0.1 — отличный способ проверить, что сетевые функции Windows работают правильно, но ничего не говорит о вашем сетевом оборудовании или вашем подключении к любому другому компьютеру или устройству. Версия этого теста для IPv6 будет ping :: 1 .

В этом примере мы просим команду ping найти имя хоста, назначенное IP-адресу 192.168.1.22 , но в противном случае пропинговать его как обычно.

Команда может разрешить IP-адрес 192.168.1.22 , например, в качестве имени хоста J3RTY22 , а затем выполнить оставшуюся часть пинга с настройками по умолчанию.

Как и в приведенных выше примерах команды ping, этот используется для проверки того, может ли ваш компьютер подключиться к маршрутизатору Единственное отличие состоит в том, что вместо использования переключателя команды ping или ping на локальном узле мы проверяем соединение между компьютером и маршрутизатором ( в данном случае 192.168.2.1 ).

Если у вас возникают проблемы при входе в маршрутизатор или вообще в интернет, посмотрите, доступен ли ваш маршрутизатор с помощью этой команды ping, конечно, заменив 192.168.2.1 на IP-адрес вашего маршрутизатора .

В этом примере мы заставляем команду ping использовать IPv6 с параметром -6 и продолжаем бесконечно пинговать SERVER с помощью параметра -t . Вы можете прервать пинг вручную с помощью клавиш Ctrl + C .

Число после % в ответах, сгенерированных в этом примере команды ping, является идентификатором зоны IPv6, который чаще всего указывает используемый сетевой интерфейс . Вы можете создать таблицу идентификаторов зон в соответствии с именами вашего сетевого интерфейса, выполнив netsh interface ipv6 show interface . Идентификатор зоны IPv6 — это номер в столбце Idx .

Команды, связанные с Ping

Команда ping часто используется с другими командами командной строки, такими как tracert , ipconfig , netstat и nslookup .

Другие пинг использует

Учитывая результаты, которые вы видите выше, ясно, что вы также можете использовать команду ping, чтобы найти IP-адрес веб-сайта . Перейдите по этой ссылке, чтобы узнать больше о том, как это сделать.

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

Читайте также: