Страница 1 из 2
shell + ping
Добавлено: 11 окт 2005, 13:12
Agent007
Здравствуте.
я пишу скрипт, который сканирует введенные ip-адреса, а потом выводит активные.
у меня вопрос:
при использовании команды ping все выводится на экран, а как сделать так, чтобы при удачном пинге возвращало допустим 1, а неудачном - 0?
Добавлено: 11 окт 2005, 13:34
mend0za
man ping на тему RETURN VALUE
и узнать что такое перенаправление в shell
Добавлено: 11 окт 2005, 13:53
Agent007
в мануале про пинг я не нашел RETURN VALUE

, попробовал методом тыка.
выводит
-------- 127.0.0.1 ping statistics --------
etc
a=return ping -c 1 127.0.0.1
в переменную a ничего не сует
Добавлено: 11 окт 2005, 14:10
Hermit
Код: Выделить всё
#!/bin/sh
IP=10.0.0.1
ping $IP -c 1 > /dev/null
if [ $? -eq 0 ]
then
echo Ping OK
else
echo Ping Failed
fi
Добавлено: 11 окт 2005, 14:14
Hermit
Agent007, а лучше посмотри в сторону nmap.
Добавлено: 11 окт 2005, 14:40
Agent007
спасибо.
а с его помощью можно получить имя компа, который пингуешь?
Добавлено: 11 окт 2005, 15:10
Hermit
Agent007, dns имена получить можно, например, так:
nmap 10.0.0.0/24 -sP -R
Добавлено: 11 окт 2005, 15:45
Llama
man nmapб там все написано... могу даже сказать конкретную строчку, но боюсь вы тогда man не прочитаете, а там много интересного....
Ессно я пологаю вы имеет ввиду DNS-имя компьютера а не виндовое?
Если вам просто интересно получить список компов в сети, то smbclinet -L на мастербраузер и все... это будет _примерно_ правдой.
Добавлено: 11 окт 2005, 16:02
mend0za
гм
хотя может потому что смотрел мануал от соляриса
Добавлено: 11 окт 2005, 16:08
Llama
Код: Выделить всё
$ ping -V
ping utility, iputils-ss020927
~skip~
If ping does not receive any reply packets at all it will exit with code 1. If a packet count and
deadline are both specified, and fewer than count packets are received by the time the deadline
has arrived, it will also exit with code 1. On other error it exits with code 2. Otherwise it
exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.
[code]
Добавлено: 11 окт 2005, 21:57
Agent007
а как сделать разбиение строки.
например ввожу 192.168.0.1, а он мне берет точку за разделитель и разбрасывает все что она разделяет по разным переменным?
Добавлено: 11 окт 2005, 22:14
Llama
читай advanced bash scripting guide
Добавлено: 12 окт 2005, 09:51
Serj
Agent007 писал(а):а как сделать разбиение строки.
например ввожу 192.168.0.1, а он мне берет точку за разделитель и разбрасывает все что она разделяет по разным переменным?
можно cut'ом
Можно IFS (internal field separator вроде дословно) у bash'а заменить на .
и for'ом пройтись по полям ...
Наверное ещё туча вариантов есть
Добавлено: 14 окт 2005, 13:46
Agent007
прошу Вас сильно не пинать, но в hellпе ничего не нашел
где читать про advanced bash scripting guide и IFS (internal field separator ) ?
nmap так и не определил у меня адрес запрашиваемого комп-а.
Добавлено: 14 окт 2005, 14:06
Llama