Форум Gatchina OnLine  

Вернуться   Форум Gatchina OnLine > Hard&Soft > Программирование и разработка

Программирование и разработка Обсуждение вопросов программирования

Ответ
 
Опции темы Опции просмотра
Старый 23.05.2011, 01:49   #21
VK
Местный
 
Аватар для VK
 
Регистрация: 21.09.2009

Нарушения:[Посмотреть]
Цитата:
Сообщение от ΛLIEN Посмотреть сообщение
Сомневаюсь, что без напильника это заработает под линухом, как раз из-за нестандартного вывода ifconfig.
в том-то и дело, что стандартов на это нет.
но дело даже не в этом, вряд ли это кому-то может понадобиться еще это плод больного воображения препода и только. к жизни отношения не имеющий.
VK вне форума   Ответить с цитированием
Старый 24.05.2011, 21:03   #22
TNT
Кот - обормот
 
Аватар для TNT
 
Регистрация: 24.01.2006
Адрес: Въездъ

Нарушения:[Посмотреть]
Цитата:
Сообщение от VK Посмотреть сообщение
это плод больного воображения препода и только. к жизни отношения не имеющий.
Именно так. Слабо понимаю, нахрен это надо.
__________________
Use the downforce, Luke!
TNT вне форума   Ответить с цитированием
Старый 24.05.2011, 21:22   #23
FeD
Местный
 
Регистрация: 23.01.2006
Адрес: Выезд

Нарушения:[Посмотреть]
Цитата:
Сообщение от TNT Посмотреть сообщение
Слабо понимаю, нахрен это надо.
а зачем в школе на бэйсике пишут проги для решения квадратных уравнений? это тоже бред больного воображения? ведь можно ж в калькуляторе посчитать
FeD вне форума   Ответить с цитированием
Старый 24.05.2011, 22:33   #24
TNT
Кот - обормот
 
Аватар для TNT
 
Регистрация: 24.01.2006
Адрес: Въездъ

Нарушения:[Посмотреть]
Плохой пример, это разные вещи.
__________________
Use the downforce, Luke!
TNT вне форума   Ответить с цитированием
Старый 25.05.2011, 15:04   #25
TNT
Кот - обормот
 
Аватар для TNT
 
Регистрация: 24.01.2006
Адрес: Въездъ

Нарушения:[Посмотреть]
В общем, сделал все заново так (вдруг кому интересно):

Код:
#!/bin/bash
# Additional functions
# Decimal to binary
binary=0
decToBin(){
	binary=`echo $1 | gawk -F. '{OFMT = "%.10g"; print $1*2^24+$2*2^16+$3*2^8+$4}'`
}

#Binary to decimal
decimal=0.0.0.0
binToDec(){
	decimal=`echo $1 | gawk '{  
				   temp = $1;
				   for (i = 1; i<=4; i++){
				        IP[i] = temp%2^8;
				        temp = int(temp/2^8);
				   }
				   print IP[4]"."IP[3]"."IP[2]"."IP[1]  
				}'`
}

# Part A Getting list of subnets and their masks.
subnets=(` ifconfig -a | grep broadcast | gawk '{print $2}'`)
count=${#subnets[*]}

#Part B Updating ARP table
i=0

while [ $i -lt $count ]
do
        net=`netstat -rnv | gawk '$3 == "'${subnets[$i]}'" {print $1}' | grep -v  224 `
       mask=` netstat -rnv | gawk '$3 == "'${subnets[$i]}'" {print $2}' | grep -v 240`
	decToBin $net
	net=$binary;
        decToBin $mask
	mask=$binary;

	comp=1;	
	limit=`echo 2^32 - $mask - 1 | bc`;
	
	while [ $comp -lt $limit ]
	do
	   ip=`echo $net + $comp | bc`;
	   binToDec $ip;
	   ping $decimal 1;
		if [ $? -eq 0 ]
		then
           	rsh $decimal df -l;
	        fi 
           let "comp+=1";

	done
	let "i+=1";
done
Пингует и, если пинг удачный, пытается сделать df.
__________________
Use the downforce, Luke!

Последний раз редактировалось TNT. 25.05.2011 в 15:05.
TNT вне форума   Ответить с цитированием
Старый 25.05.2011, 21:05   #26
VK
Местный
 
Аватар для VK
 
Регистрация: 21.09.2009

Нарушения:[Посмотреть]
что-то твое решение хреново совпадает с твоим же условием в первом посте и строчку с ifconfig ты переделал опять до того же некорректно работающего состояния sort там был не просто так.
VK вне форума   Ответить с цитированием
Старый 25.05.2011, 22:38   #27
TNT
Кот - обормот
 
Аватар для TNT
 
Регистрация: 24.01.2006
Адрес: Въездъ

Нарушения:[Посмотреть]
А почему с условием не совпадает? Вроде нормательно: обновляет ARP-таблицу, как только пинг прошел - берет информацию df -l.

Да, кстати, насчет сорта: я так и не врубил, зачем был он нужен...
__________________
Use the downforce, Luke!
TNT вне форума   Ответить с цитированием
Старый 25.05.2011, 22:40   #28
VK
Местный
 
Аватар для VK
 
Регистрация: 21.09.2009

Нарушения:[Посмотреть]
"вывести... отвечающие на ARP-запросы". ping - это не arp-запрос, ответ на пинг может быть и не получен, а arp вполне.
sort нужен был для того, чтобы исключить дублирующиеся сети.
VK вне форума   Ответить с цитированием
Старый 25.05.2011, 22:45   #29
VK
Местный
 
Аватар для VK
 
Регистрация: 21.09.2009

Нарушения:[Посмотреть]
короче, вот это:
Цитата:
ping $decimal 1;
if [ $? -eq 0 ]
then
rsh $decimal df -l;
fi
надо переделать вот так:
arp $decimal >/dev/null && rsh $decimal df -l;

и все.
VK вне форума   Ответить с цитированием
Старый 25.05.2011, 22:50   #30
TNT
Кот - обормот
 
Аватар для TNT
 
Регистрация: 24.01.2006
Адрес: Въездъ

Нарушения:[Посмотреть]
Ну в принципе тоже верно.
А чем плоха проверка потока с ошибками? Просто не самый эффективный метод?
__________________
Use the downforce, Luke!
TNT вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:29. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot