Strona główna Ubuntu C++ Hardware HTML i javascript Java Software SQL

Bash – skrypt przeszukujący sieć za pomocą komendy ping.

Dodano: 2013-03-01

Jeżeli chcemy sprawdzić jakie adresy sieciowe są zajęte, najprostszym sposobem jest użycie komendy ping. Wysyła ona żądanie do urządzenia o podanym adrsie IP i oczekuje od niego odpowiedzi, ta metoda jest dobra tylko, jeżeli nie posiadamy narzędzi bardziej precyzyjnych. Niektóre urządzenia w sieci ignorują żądania ping i nie odpowiadają na nie.

Skrypt poniżej jest przykładem możliwości języka bash. Wykonuje on przeszukiwanie (być może za mocne słowo, ale trzeba też od czasu je użyć ;) sieci o masce 255.255.255.0 (/24), jako parametr początkowy przyjmuje trzy pierwsze oktety adresu tzn. dla sieci 192.168.1.0 parametr będzie wyglądał następująco 192.168.1. (kropka na końcu to nie błąd)

#!/bin/bash

# The script ping devices in network /24

if [ "$1" == "" -o "$1" = "--help" ]; then
	echo "Type the network address, example:";
	echo "./ping_net.bash 192.168.1.";
	exit;
fi

for i in $(seq 1 1 255) 
do
	if [ `ping 192.168.1.$i -c 1 | grep "ttl" | wc -l` -eq "1" ]; then
		echo "$1$i"
	fi
done