Ping по списку из файла

Заметки о разном в системе Windows

Модератор: ROOT

Ping по списку из файла

Сообщение ROOT » 12 июн 2014, 16:49

Иногда нужно пинговать группу IP-адресов, но набирать каждую команду по отдельности неудобно. Проще воспользоваться скриптом и пинговать список необходимых для тестирования хостов. Для этого можно воспользоваться скриптом следующего содержания:
Код: выделить все
@Echo OFF

For /F "Usebackq Delims=" %%# in ("list.txt") do (
    Echo ===============================================
    Echo [+] Pinging: %%#
    ping -n 1 "%%#" > nul && (
   Echo     [Ответ от %%# получен]) || (
   Echo     [Хост %%# недоступен])
)
Pause


и файл list.txt с перечнем адресов или имён для проверки
Код: выделить все
195.0.1.7
10.10.10.29
10.10.10.30
ya.ru
...

А вот скрипт со значительно большим функционалом
  1. Пинг по адресам
  2. Преобразование IP в DNS-имена (утилитой DIG)
  3. Запись в файл найденных DNS-имён
  4. Поиск PTR-записей на основе построенного файла
  5. Пинг по DNS именам
Код: выделить все
@Echo OFF > name.txt
Echo *****************************
Echo *   Pinging IP addresses    *
Echo *****************************
For /F "Usebackq Delims=" %%# in ("ip.txt") do (
   Echo ===============================================
   Echo [+] Pinging: %%#
   ping -n 1 "%%#" | find "TTL=" > NUL && (Echo     [Ответ от %%# получен]) || (Echo     [Хост %%# недоступен]))
Pause

Echo *****************************
Echo * Resolving IP to DNS names *
Echo *****************************
For /F "Usebackq Delims=" %%# in ("ip.txt") do (
   Echo ===============================================
   Echo [+] Resolving: %%#
   dig -x "%%#" +short | find /V "" >> name.txt && (Echo     [Запись PTR для %%# найдена]) || (Echo     [НЕТ записи PTR для %%#]))
Pause

Echo *****************************
Echo * Resolving DNS names to IP *
Echo *****************************
For /F "Usebackq Delims=" %%# in ("name.txt") do (
    Echo ===============================================
    Echo [+] Resolving: %%#
    dig  "%%#" +short | find /V "" > nul && (Echo     [Запись A сущуствует]) || (Echo     [НЕТ записи A]))
Pause

Echo *****************************
Echo *     Pinging DNS names     *
Echo *****************************
For /F "Usebackq Delims=" %%# in ("name.txt") do (
    Echo ===============================================
    Echo [+] Pinging: %%#
    ping -n 1 "%%#" | find "TTL=" > nul && (Echo     [Ответ от %%# получен]) || (Echo     [Хост %%# недоступен]))
Pause
Для желающих поддержать
Карта SB: 5469 4009 6510 2267
Аватар пользователя
ROOT
Администратор
 
Сообщений: 417
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в WINDOWS

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron