Как уменьшить пинг

Сканирование IP устройств в локальной сети. Python

Немного подумав, пришел к выводу что самое простое это просто пингануть всю локальную сеть. На самом деле Ping это название утилиты которая входит в ОС, а сама эта хрень называется ICMP Echo-Request( запрос ) и ICMP Echo-Reply( ответ ). К стати пинг не гарантирует что устройство не доступно, так как ответ на пинг может быть просто запрещен на устройстве или брандмауэре .

ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений) — сетевой протокол, входящий в стек протоколов TCP/IP.

Вообщем он там зарыт где то глубоко глубоко, писать реализацию своего стека мне уж точно не под силу. По этому будем пользоваться уже готовой системной утилитой. Для отправки ICMP Echo-Request мы должны иметь права АДМИНИСТРАТОРА ( root ). Поехали.

Первым дело узнаем IP нашего сетевого интерфейса, в какой мы вообще сети :

  • socket.AF_INET — для сокета используем IPv4 .
  • socket.SOCK_DGRAM — тип сокета. Датаграммный сокет (UDP) .
  • getsockname() — Вернет сокету его собственный адрес.

Это наверное не самый элегантный способ.Но должен работать в любой локальной сети, которая позволяет широковещательную рассылку UDP и не требует доступа куда либо. Есть еще идее ? Пишите в комментах )

Далее нам надо узнать платформу. В Windows и Linux команда будет выглядеть немного по разному. Для определение ОС в Питоне есть команды platform.system() которая входит в стандартную библиотеку OS . Возвращает имя системы / ОС, например ‘Linux’ , ‘Windows’ , или ‘Java’ . Пустая строка возвращается, если значение не может быть определено :

Введем диапазон адресов для сканирования :

Ну теперь напишем саму функцию сканирования :

  • os.popen(comm) — Класс Popen Python выполняет дочернюю программу в новом процессе.
  • data = response.readlines() — читаем ответ от утилиты.
  • Дальше просто парсим ответ, если есть TTL в строке значит пинг успешен.

Еще добавим многопоточность что бы быстрей пинговать. Весь код целиком :

Получилось достаточно простая программка. В следующий раз добавим еще отображение MAC адреса и Vendor . Можно еще добавить определение сетевого имени ПК и т.д.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Определяем пинг до сервера

Сначала нужно проверить пинг до сервера подключения и понять, проблема на нашей стороне или на стороне сервера.

1 . В меню Пуск введите cmd , и запустите командную строку.

2 . Напечатайте команду ping google.com –t

Где «google.com» — адрес сервера, до которого мы посылаем пакеты. А «-t» — это непрерывная отправка пакетов.

Нажмите клавишу Enter для выполнения.

3 . В ответ сервер покажет время отклика в мс. Средним показателем является значение 90, хорошим – все, что ниже 40.

На скриншоте показан пример, хорошего низкого пинга без прерываний, что является показателем качественного интернет соединения.

4 . Дополнительно пропингуйте другие сайты. Если высокое значение появляется только на стороне одного сервера, попробуйте поискать ему альтернативу.

Сканирование на основе PING

Настройте диапазон вашей сети (часть «172.10.1»), и все готово. Это предоставит список всех хостов в сети, которые отвечают на эхо-запросы ICMP (ping), и сопоставит их с вашим DNS-сервером.

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

10 ответов

Откройте командную строку и введите следующее:

измените 192.168.10, чтобы соответствовать вашей собственной сети.

используя -n 1, вы просите отправить на каждый компьютер только 1 пакет вместо обычных 4 пакетов.

вышеуказанная команда будет пинговать все IP-адреса в сети 192.168.10.0 и создавать текстовый документ на диске C: под названием ipaddresses.формат txt. этот текстовый документ должен содержать только IP-адреса, ответившие на ping запрос.

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

надеюсь, что это помогает

Я знаю, что это поздний ответ, но аккуратный способ сделать это, чтобы пинговать широковещательный адрес, который заполняет ваш локальный кэш ARP.

Это можно показать, запустив arp-a, в котором будут перечислены все адреса в локальной таблице arp.

надеюсь, это хороший аккуратный вариант, который люди могут использовать.

Лучшая утилита с точки зрения скорости в Nmap.

написать @ cmd приглашение:

Это будет просто пинговать все ip-адреса в указанном диапазоне и хранить его в простом текстовом файле

всего 2 секунд для сканирования 255 хосты, использующие Nmap.

этот пост задает тот же вопрос, но для Linux — вы можете найти его полезным. отправить пинг на каждый IP в подсети

nmap, вероятно, лучший инструмент для использования, так как он может помочь идентифицировать хост-ОС, а также быстрее. Он доступен для платформы windows на nmap.org сайт

при условии, что окно windows находится в той же подсети:

для / L %a в (1,1,254) запустите ping 192.168.0.%a

Это будет завершено менее чем за 15 секунд и

вернет любой живой хост.

самый быстрый родной способ, который я знаю в windows.

все, что вы хотите сделать, это посмотреть, подключены ли компьютеры к сети и собрать их IP-адреса. Вы можете использовать сканер angryIP:http://angryip.org/ чтобы узнать, какие IP-адреса используются в определенной подсети или группах подсетей.

Я нашел этот инструмент очень полезным при попытке увидеть, какие IPs используются, которые не находятся внутри моего DHCP.

некоторые вещи, похоже, изменились в пакетных сценариях в Windows 8, и решение выше DGG теперь вызывает сбой командной строки.

для меня сработало следующее решение:

расширение и полезное дополнение к решению «arp-a» egmackenzie для Windows —

Что такое пинг?

Ping — это маленькая программа для проверки соединений в сетях на основе TCP/IP. Смысл её в том, что программа пинг отправляет специальные запросы по протоколу ICMP (ICMP Echo-Request) узлу сети, который надо проверить и фиксирует поступающие от узла пакеты в ответ (ICMP Echo-Reply). Время между отправкой запроса и получением ответа позволяет определять двусторонние задержки по маршруту и частоту потери пакетов. Фактически пинг используют для определения доступности узла и загруженности на каналов передачи данных.

Самый быстрый и простой способ в Windows запустить команду Ping и пропинговать роутер следующий:
Переворачиваем роутер вверх-ногами и смотрим на наклейке какой у него IP-адрес.

как пропинговать ip-адрес 192.168.1.1

Нажимаем кнопку «Пуск» и выбираем пункт «Выполнить». Либо комбинацию клавиш WIN+R:

как пропинговать ip-адрес 192.168.1.1

Пишем команду: ping 192.168.1.1 -t.
Если у Вашего роутера IP-адрес — 192.168.0.1 (как в случае с роутерами D-Link), то команда будет соответственно: ping 192.168.0.1 -t:

как пропинговать ip-адрес 192.168.0.1

Ключ -t означает, что пакеты будут посылаться в бесконечном цикле до тех пор, пока пользователь не нажмет комбинацию клавиш Ctrl+C либо не закроет окно командной строки.
Успешный результат выполнения команды вот такой:

how-to-ping-router-4

Этот результат говорит о том, что IP-адрес 192.168.1.1 доступен и мы получаем от него ответы на ICMP-запросы. Соответственно роутер доступен с компьютера и можно пробовать зайти в веб-интрерфейс роутера. Как это сделать подробно описано тут.
Если пингуемый IP-адрес недоступен, то результат выполнения команды пинг следующий:

how-to-ping-router-3

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector