Сформируйте вниз только определенную часть удара ouput команда

У меня есть простая программа, что я называю ipsweep. Все, что это, как предполагается, делает, должно проверить с помощью ping-запросов IP-адрес и показать дюйм/с при использовании.

Это - то, что я сделал в первый раз:

#!/bin/bash
for ip in {1...254}; do
ping -c 1 $1.$ip
done

Это работало, но это показывает информацию, что мне не нужно. Все, в чем я нуждаюсь, является IP-адресами при использовании. Это показало все это с каждым IP:

enter image description here

Таким образом, я пытался добавить некоторые фильтры как | 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 часов, но я все еще неспособен к нему. Я знаю, что с, если это могло бы быть решено, но я не знаю, как записать это.

enter image description here

0
задан 19 March 2020 в 12:21

2 ответа

Используя код выхода ping, чтобы определить, жив ли хост:

#!/bin/bash
for ip in {1..254}; do
  ping -q -c 1 $1.$ip >2 2>&- && printf %s.%s\\n $1 $ip
done
1
ответ дан 7 April 2020 в 23:33

Во-первых, проверка возможности соединения с единственным пакетом неблагоразумна, но:

# 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" вместо этого.

0
ответ дан 7 April 2020 в 23:33

Другие вопросы по тегам:

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