Mar. 23rd, 2023

eddy_em: (Default)
Вчера хотел поснимать с ИК-датчиков картинки (облачности не было, но местами была на небе дымка), однако, забыл IP-адрес одноплатника! Вот, утром накидал такой скрипт, чтобы всю нашу подсетку проверить:
#!/bin/bash

trap "echo Exited!; exit;" SIGINT SIGTERM

if [ $# -ne 1 ]; then
	echo "Usage: $0 IP_base (like $0 192.168.70) - ping all IP in 192.168.70.1 .. 192.168.70.254" >&1
	exit 1
fi

for x in $(seq 1 254); do
	IP="$1.$x"
	HOST=$(host $IP)
	if [ $? -eq 0 ]; then
		HOST=$(echo $HOST| awk '{print $5}')
	else
		HOST="-"
	fi
	ping -c 1 -W1 $IP >/dev/null 2>/dev/null && echo "$IP, $HOST"
done

Советую обратить внимание на строчку trap ...: она позвляет отслеживать прерывание цикла по Ctrl+C и завершать при этом весь скрипт, а не только текущую команду в цикле.
Когда-то я писал нечто подобное (но уже с другой целью: пинговать выключенные компьютеры), чтобы динамически менять (где-то раз в полчаса) IP-адрес компьютера (заодно можно еще и по данным arp составить табличку и MAC менять тоже на целевой). А в гостинице в Ереване был у меня скриптик, который к wifi переподключался в случае снижения скорости (там за трафик рубили, а я торренты качал ☺) с новым MAC-адресом.

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 11:52 am
Powered by Dreamwidth Studios