У меня есть простая программа, что я называю ipsweep. Все, что это, как предполагается, делает, должно проверить с помощью ping-запросов IP-адрес и показать дюйм/с при использовании.
Это - то, что я сделал в первый раз:
#!/bin/bash
for ip in {1...254}; do
ping -c 1 $1.$ip
done
Это работало, но это показывает информацию, что мне не нужно. Все, в чем я нуждаюсь, является IP-адресами при использовании. Это показало все это с каждым IP:
Таким образом, я пытался добавить некоторые фильтры как | grep "ping" | cut -d " " -f 2
#!/bin/bash
for ip in {1...254}; do
ping -c 1 $1.$ip | grep "ping" | cut -d " " -f 2 &
done
Теперь консоль показывает только дюйм/с, но это показывает ВСЕГО дюйм/с, неважно, если это находится в пользователе или не (мне только нужны те при использовании, я повторяюсь). Я пытался решить это в течение 5 часов, но я все еще неспособен к нему. Я знаю, что с, если это могло бы быть решено, но я не знаю, как записать это.
Используя код выхода ping, чтобы определить, жив ли хост:
#!/bin/bash
for ip in {1..254}; do
ping -q -c 1 $1.$ip >2 2>&- && printf %s.%s\\n $1 $ip
done
Во-первых, проверка возможности соединения с единственным пакетом неблагоразумна, но:
# IP address 192.168.100.1 exists, 192.168.100.122 does not.
walt@bat:~(0)$ ping -c 1 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=63 time=2.76 ms
--- 192.168.100.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.763/2.763/2.763/0.000 ms
walt@bat:~(0)$ ping -c 1 192.168.100.122
PING 192.168.100.122 (192.168.100.122) 56(84) bytes of data.
--- 192.168.100.122 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
И успех и примеры отказа содержат"--- 192.168.100.122 ping statistics ---
"строка Вы обнаруживаете с grep ping
.
Вы могли grep ", 0% packet loss"
вместо этого.