LINUX.ORG.RU

Cкрипт на bash'е для проверки всех ip подсети, подстановкой их и измерения скорости на каждом ip


0

0

Я хочу написать такой скрипт, чтобы он пинговал ip (например от 192.168.1.1 до 192.168.1.255). Если ip не отвечает, то ставим себе этот ip и проверяем скорость соединение с интернетом.Вот написал такое подобие скрипта но оно не работает. Подскажите.
#!/bin/bash
for address
do
{
if ping -c 1 $address >/dev/null 2>&1
then echo "$address is alive"
else {
echo "$address no response";
ifconfig eth1 $address;
wget http://ya.ru;
}
fi
}
done

Ответ на: комментарий от leon1001

Что из этого не работает?

1. чтобы он пинговал ip (например от 192.168.1.1 до 192.168.1.255). 2. Если ip не отвечает, то ставим себе этот ip 3. проверяем скорость соединение с интернетом

anonymous
()
Ответ на: комментарий от xpahos

>а если на том сервере icmp фильтруется ?

Вот именно поэтому надо использовать arping

anonymous
()
Ответ на: комментарий от leon1001

>sudo ./pingall.sh 192.168.1.{1..255}

Это не поможет. Изучи синтаксис for.

anonymous
()
Ответ на: комментарий от leon1001

Хм, а разве первый переданный параметр не должен быть чем-то типа $1? Или bash позволяет такую самодеятельность?

GotF ★★★★★
()
Ответ на: комментарий от anonymous

Пингует он нормально. ip он вроде тоже ставит. А вот соединения не проходит. Еще проблема: после отключения скрипта ip дальше меняеться))

192.168.17.4 no response --2009-10-27 17:46:26-- http://10/ Преобразование адреса 10... 0.0.0.10 Устанавливается соединение с 10|0.0.0.10|:80... ошибка: Network is unreachable. --2009-10-27 17:46:26-- ftp://192.168.8.12/ => `.listing' Устанавливается соединение с 192.168.8.12:21... ошибка: Network is unreachable. unlink: No such file or directory 192.168.17.5 is alive 192.168.17.6 is alive 192.168.17.7 is alive 192.168.17.8 is alive

leon1001
() автор топика

> Если ip не отвечает, то ставим себе этот ip и проверяем скорость соединение с интернетом

А у вас от локального ip скорость зависит? Каков сакральный смысл?

boombick ★★★★★
()
Ответ на: комментарий от leon1001

круто.. т.е. задача: найти самый быстрый ip из свободных и захапать его себе? :) А нельзя единожды список скоростей на каждом ip составить, а потом просто их незанятость проверять? Или там еще и постоянно разная скорость? Тогда расскажите пожалуйста, где это так увлекательно интернет раздается? :)

boombick ★★★★★
()
Ответ на: комментарий от Liosha_Syrnikov

С провайдером конечно приколы ещё те)) Сейчас я всё так и написал))

leon1001
() автор топика

Вот следующая версия, но пока тоже не рабочая. Не могу понять в каком месте я дурак))

#!/bin/bash
for address in 192.168.1.59 192.168.1.141 192.168.1.45 192.168.1.44
do

if ping -c 1 $address >/dev/null 2>&1
then
echo "$address is alive"
ifconfig eth1 inet $address
wget http://ya.ru
else
echo "$address no response"
ifconfig eth1 inet $address
wget http://ya.ru
fi
done

leon1001
() автор топика
Ответ на: комментарий от pseudo-cat

На нашем провайдере всё можно.
Тоесть отдельно всё работает. А вот скрипт написать пока не получается.
sudo ifconfig eth1 inet 192.168.1.14 up
wget http://ya.ru
--2009-10-27 22:07:18-- http://ya.ru/
Преобразование адреса ya.ru... 93.158.134.8, 213.180.204.8, 77.88.21.8
Устанавливается соединение с ya.ru|93.158.134.8|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 4891 (4,8K) [text/html]
Сохраняется в каталог: `index.html.1'.

100%[======================================>] 4.891 --.-K/s в 0,04s

2009-10-27 22:07:18 (132 KB/s) - `index.html.1' сохранён [4891/4891]

leon1001
() автор топика

Нехорошо воровать интернет.

anonymous
()

видимо провайдер не использует vpn, а использует только ип или ип+мак

dimon555 ★★★★★
()
Ответ на: комментарий от pseudo-cat

bash: /etc/init.d/net.eth1: No such file or directory
У меня просто ubuntu а там вот это
sudo /etc/init.d/networking restart

leon1001
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.