Проверьте диапазон IP-адресов, чтобы видеть, активен ли хост

Поскольку они - расширение XSI, которое может или не быть реализованным. См.: http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html

1
21.11.2013, 00:03
2 ответа

Это должно запустить Вас.

#!/bin/bash
for i in `seq ${2} ${3}`
do
    ping -c 1 ${1}.${i} > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        echo "${1}.${i} responded."
    else
        echo "${1}.${i} did not respond."
    fi
done

Демонстрационный вывод:

xxxx@xxxxxx:~$ bash test.sh 10.140.0 100 103
10.140.0.100 responded.
10.140.0.101 did not respond.
10.140.0.102 did not respond.
10.140.0.103 did not respond.

Руководство удара может, вероятно, обработать что-либо еще, в чем Вы нуждаетесь.

2
27.01.2020, 23:21
  • 1
    Кроме того, согласно примеру OP, необходимо использовать ${1%.*} вместо ${1}. –  Joseph R. 20.11.2013, 07:25
  • 2
    @ChrisDown, я хотел бы придумать некоторую большую логику позади, почему я принял решение оценить полный путь к двоичному файлу в sub, окружают и запускают восторженное обсуждение. Я просто послал бы сообщение-розыгрыш в той точке все же. На данный момент я просто скажу, что бросил это там, потому что я хотел человека, задающего вопрос, кто, очевидно, даже не потрудился смотреть на любую документацию, подвергать сомнению ее функцию и возможно читать руководство. Я буду идти вперед и удалять ненужную оболочку sub для Вас. Спасибо Richard –  Sean C. 20.11.2013, 14:55

Используйте nmap. Это - стандартный инструмент для задания.

Так как Вы просто хотите знать, какие хосты онлайн (и отвечающий), выполните “сканирование ping”: nmap -sP.

Если Вы не заботитесь о форматировании вывода, Ваш сценарий может быть записан этот путь:

#!/bin/sh
nmap -sP "$1.$2-$3"
2
27.01.2020, 23:21

Теги

Похожие вопросы