Sziasztok!
Az előbb töröltem egy kérdést mert rájöttem a megoldásra, de most kiderült, hogy mégsem :)
a kódom:
#!/bin/bash
i=1
for line in `cat alhalozatok.txt`; #kiolvasom sorról sorra a txtből az alhálózatokat
do
ADDR=$line$i # két stringből összerakom az ipcímet
if `ping -c 1 $ADDR` > /dev/null 2>&1; then # tesztelem, hogy ping-e?
echo ping: $ADDR
else
echo nemping: $ADDR
fi
done
exit 0
cat alhalozatok.txt
10.0.1.
10.0.2.
10.100.1.
10.101.1.
a történet annyi, hogy egy alhálózatokat tartalmazó txtből kiolvasnám az alhálózatokat és pingelném az alhálózatok első címét(később majd a többit is)
az echo szépen kiírja a két stringből összerakott ip címet, de a ping -c 1 nem eszi meg :(.
Segítségeteket kérném, mert ne mértem mi a baja.
A fő cél az lenne hogy az alhálózatokból kiszedjem azokat az ipcímeket, amelyek figyelnek a 80 porton, ezek 99%-ban nyomtatók és összeszedjem a számláló állásukat.
- 5116 megtekintés
Hozzászólások
szerintem nem jo helyen van a ` a $ADDR utan. nekem a kovetkezo mukodik:
for i in `cat test.i`; do
ping -c 1 $i -> /dev/null 2>&1;
if [ $? -eq 0 ]; then
echo ping $i;
else
echo nemping $i;
fi
done;
- A hozzászóláshoz be kell jelentkezni
Bazzz, itt téptem a hajam. Köszönöm, ez segített.
- A hozzászóláshoz be kell jelentkezni
azert inkabb $(), nem pedig ``
t
- A hozzászóláshoz be kell jelentkezni
Működik ez...
Más kérdés, hogy nem
if `ping ...`
hanem
if ping ...
Neked ui. nem a ping lefutásával gyártott sztringgel van dolgod, hanem a ping által visszaadott exitkóddal.
Amit fentebb csinálsz, egyébként azt műveli, hogy a ping által gyártott sztringnek megfelelő nevű parancsot futtatná le - ami valószínűtlen, hogy volna - és a kísérlet hibakódját kapja az if, annak alapján dönt arról, hogyan tovább.
Ezt a viselkedését pont eldugod a parancs mindennemű kimenetének semmibe irányításával.
Az ilyen átirányításokra ráérsz akkor, amikor már biztos vagy a dolgodban.
- A hozzászóláshoz be kell jelentkezni
köszönöm neked is, miután kalebris hozzászólását megláttam kitöröltem a `` jeleket :)
- A hozzászóláshoz be kell jelentkezni
nem a ping lefutásával gyártott sztringgel van dolgod
es nem is akarod lefuttatni a ping stdout-jan megjeleno stringet parancskent - ugyanis az if utan egy parancs all :)
a [ (ejsd: teszt) is egy parancs
- A hozzászóláshoz be kell jelentkezni
Hali!
Ez tök jó. De csak az utókor miatt. Ennyit kellett volna csinálni:
nmap -iL alhalozatok.txt -p80 -oG - |grep open
Meg widecard-okat hozzáadni állományhoz. pl:
10.0.1.*
10.100-101.1.*
- A hozzászóláshoz be kell jelentkezni
ez nagyon jó, nem is értem miért nem keresetem portscan progit, nekem nem volt telepítve, az itthoni ubuntun, de megérte felrakni, így legalább nem nekem kell párhuzamosítani az nc -zv -w2 $ADDR 80
parancsot. Mondjuk a párhuzamosítást nem fogom megúszni, mert nem egyenként akarok dolgozni a nyomtatókkal.
- A hozzászóláshoz be kell jelentkezni
De ha mar, akkor inkabb CIDR-be kene megadni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
ez egyébként miért lenne jobb?
- A hozzászóláshoz be kell jelentkezni
Mert megtanulnad a halozatok alapjait. A halozatok kezelese soran az esetek 95%-aban nincs wildcardozas, CIDR notation van. Regexp sincs.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ja értem. Egyelőre nem tervezem ezt a szkriptet megosztani másokkal, itt meg jól működik így is ezekkel a C osztályú hálózatokkal. Ha lesz rá szabad kapacitásom lehet belevágok.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni