Hozzászólások
tcpdump -ln 'tcp[13]&8=8' | perl -e 'while(<>) { my @f=split(" "); chop($f[4]); $f[6]=~s/.*\((.*)\).*/\1/; print "At $f[0], from $f[2], to $f[4], length $f[6]\n"; }'
Kicsit write-only, úgyhogy kifejtve:
- a 'tcpdump' sasolja a hálóforgalmat (ha csak adott interface kell, akkor add meg még neki a '-i' -vel, pl. '-i eth3')
- a '-l' miatt soronként írja az eredményt, nem az alapértelmezett 4k-nként
- a '-n' miatt az ip-címeket számként írja (nem névként), ez van összevonva a fentivel '-ln'-né
- a 'tcp[13]&8=8' szűrőfeltétel miatt csak a tcp adatot vivő (PSH flag) csomagokat nézi
Ez eddig ilyen sorokat produkálna:
16:51:48.014999 IP 127.0.0.1.35503 > 127.0.0.1.9001: P 1702805880:1702805887(7) ack 1694442391 win 32767 <nop,nop,timestamp 25477334 25472684>
Az eleje az időbélyeg, a '>' előtt és mögött a forrás- és a cél ip és port van, a csomagban lévő adat hossza pedig az 'ack' előtti mező végén zárójelek között található. Na ez megy bele az alábbi kis perl scriptbe:
[code:1:339703ac08]
while(<>) # vegig a stdin sorain
{
my @f=split(" "); # szokozok menten szetvagjuk, a mezok $f[x]-kent erhetok el
chop($f[4]); # a cel-ip vegerol lecsapjuk a kettospontot
$f[6]=~s/.*\((.*)\).*/\1/; # a 6. mezobol csak a zarojelek kozotti reszt (hossz) hagyjuk meg
print "At $f[0], from $f[2], to $f[4], length $f[6]\n"; # es kiiratjuk
}
[/code:1:339703ac08]
Ez így ilyesmit generál:
At 16:47:57.959578, from 127.0.0.1.35494, to 127.0.0.1.9001, length 6
A print-ben láthatóan a $f[0] az időbélyeg, a $f[2] a forrás-, a $f[4] a cél-ip és port, a $f[6] pedig a csomag adattartalmának a hossza. Ezt aztán pakolhatod a neked tetsző formátumba, tolhatod file(ok)-ba, vagy ha elég lassú a hálózatod, akár helyi adatbázisba is :).
Kapcsolódó manpage-ek: tcpdump, perlrun, perlfunc, perlop.
Elég fusi, de ennél testreszabhatóbb kész progit még nem találtam.
Sok szerencsét :) !
- A hozzászóláshoz be kell jelentkezni
Ez borzasztóóóó!
- A hozzászóláshoz be kell jelentkezni
Meghajolok nagyságod előtt, gsimon. De tényleg. Ez aztán kimerítő válasz volt. :-) Unatkozol? :D
- A hozzászóláshoz be kell jelentkezni
Huh ez szep, de kozben legyozve lustasagom rakerestem a forumban. Talaltam is errol szolo topicot es ott ajanlanak 3 felet is. Az ipaudit jo lenne, de az eleg erdekes formatumban irja ki az eredmenyt. Azert koszi.
- A hozzászóláshoz be kell jelentkezni
Nem tudom, mit ertesz a forgalom meresen, de ha kovetni akarod (tehat nezni) a forgalmat akkor probald ki: "trafshow -n -i eth1".
- A hozzászóláshoz be kell jelentkezni
http://ipaudit.sourceforge.net/
- A hozzászóláshoz be kell jelentkezni
Mondjuk havi osszesitett ip-re lebontott forgalom merest szeretnek.
- A hozzászóláshoz be kell jelentkezni
[quote:b9ed89cd7c="dragi"]Mondjuk havi osszesitett ip-re lebontott forgalom merest szeretnek.
mi erre egy ipac-ng nevu borzalmat hasznalunk, de csak akkor ajanlom ha mar meg vagy oszulve :D
hajmereszto a config file syntax, doksi nincs es meg lehet sorolni. de egy-ket het konfigolas utan szepen muxik, es nem kell neki promisc mod ;)
ime a link: http://ipac-ng.sourceforge.net/
- A hozzászóláshoz be kell jelentkezni
Sziasztok
Egy ilyen programot keszitettem a minap, ha minden jol megy akkor honap vege fele lesz publikus verzio... (remelem nem kiabalom el, mert ezt mondogatom febr. ota)
York.
- A hozzászóláshoz be kell jelentkezni
A kerdesem az lenne, hogy egy linux-iptables routeren atfolyo forgalmat hogy lehet merni ip cimekre lebontva, tehat a kliensek forgalmat szeretnem merni.
- A hozzászóláshoz be kell jelentkezni
Jo regi thread, de talan valaki meg ranez ...
Szuksegem lenne egy ilyen progira, kerdeznem, hogy elkeszultel e vele? :) Ha igen, akkor publikus-e a cucc? ha igen oda tudnad adni? szivesen kiprobalnam
--
TH
- A hozzászóláshoz be kell jelentkezni
Szia
Igen elkeszultem a programmal.
http://openproject.hu/myntcd itt olvashatsz rola.
Jelenleg meg kiadott verzio nincs, de ez az elfoglaltsagomnak es lustasagomnak koszonheto:(. SVN-bol le tudod tolteni, ha nem menne akkor keress meg nyugodtan provatban.
York.
------
"Nyugi! Minden a legnagyobb rendben csúszik ki a kezeim közül..."
- A hozzászóláshoz be kell jelentkezni
Nem tudom letölteni, nem tudom letölteni ... help plíízz
- A hozzászóláshoz be kell jelentkezni
Esetleg irhatnal egy levelet az oldalon van mailcim ? :)
Ki fogom tenni valamikor igerem :), de jelenleg nagyon elfoglalt vagyok :(.
York.
------
"Nyugi! Minden a legnagyobb rendben csúszik ki a kezeim közül..."
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Addig tudtok nekem segíteni?
Azt akarom csinálni, hogy kiveszem egy parancsal az ifconfig eth0 kimenetéből az RX bytes értéket (pl 170,1) ez ugye MB és beleteszem egy változóba (pl meres1).
Utána kellene egy parancs amit egyszer láttam egy szkriptbe, hogy vár x időig (pl 10mp) és folytatja a szkript futtatását a következő sorral amiben szintén az előző parancs fog lefutni, de most az értékel a meres2-be teszi. Aztán ezekkel kivonok meg osztok és meglesz, hogy épp abban a 10mp-ben milyen adatforgalom van lefelé az eth0 interfészen.
Tudja valaki?
- A hozzászóláshoz be kell jelentkezni
az a baj az ifconfig csak 32bites szammal dolgozik, ezert 4giga felett tulcsordul. ezt is bele kell venni a szamitasba
--
Tuddd gi: A Dörrög Zuldán, te hűjje!
(Rejtő Jenő: Az elátkozott part)
- A hozzászóláshoz be kell jelentkezni
Egy képercesben:
perl -e '($a) = `ifconfig eth0` =~ /RX bytes:(\d+)/; \
sleep 10; \
($b) = `ifconfig eth0` =~ /RX bytes:(\d+)/; \
$c = ($b-$a)/10/1024/1024; \
print "$c Mb/s\n";'
Átfordulást nyilvánvalóan nem kezel :)
- A hozzászóláshoz be kell jelentkezni
Elfelejtettem írni, hogy a shell szkript érdekelne, csak ahhoz értek valamelyest. A sleep 10 ott is jó? Mert akkor oksa, és thx, csak ez kellett, a többi megy.
- A hozzászóláshoz be kell jelentkezni
Megy, persze feltéve, hogy van /bin/sleeped, de az biztos van :)
bocs, shell scriptet nem szeressem, kerüljük egymást :)
- A hozzászóláshoz be kell jelentkezni
A 2. sorod megindoklod? Miért? Inkább tanuljak meg perlül is?
- A hozzászóláshoz be kell jelentkezni
Azért, mert egyszerűen nem szeretem. Eléggé nehézkes nekem, kínlódok a szintaktikájával, a hashek hiányával, perlben meg minden megvan, ami egy gyors hackoláshoz kell, kényelmes, kézreálló, eléggé all around, összességében szerintem egy elég jó kis nyelv.
Mondjuk vannak ennek is bajai, OO pl szerintem nagyon nagyon erőszakolt benne, elég nagy gond a CPANon fellelhető dolgok igen változatos minősége, nagyobb projektnek nem biztos hogy nekiállnék benne, ha nem muszáj. (bár ez lehet csak az én hiányosságom :) )
Persze van ahova nem való, mert fölösleges bloat, de szerintem scriptnyelvnek nagyon kényelmes. (Kollégám szerint meg a bash az, ezért ő mindent abba csinál, én mindent ebbe, és ha a másikéhoz kell hozzányúlni, akkor kölcsönösen csuklunk :D)
- A hozzászóláshoz be kell jelentkezni
Értem és köszi az info-t.
Anélkül, hogy élyebben elgondolkoztam volna, próbálva megérteni, így első ránézésre a Te szkripted tűnik nekem hejj de nehéznek :)
- A hozzászóláshoz be kell jelentkezni
őőő, igen, ez azért van, mert eléggé tömörítettem :)
Kissé átláthatóbban a csúnya
($a) = `ifconfig eth0` =~ /RX bytes:(\d+)/;
sor kb így nézne ki:
$ifconfig_kimenete = `ifconfig eth0`;
$ifconfig_kimenete =~ /RX bytes:(\d+)/;
$a = $1;
Akkor azt elmondva, hogy a =~ a reguláris kifejezés illesztő operátor, és utána a reguláris kifejezésben található zárójelezett részekre illeszkedő minták rendre a $1 $2 .. $n változóba kerülnek, akkor gondolom már érthető :) Csak nem pakoltam ki a kimenetet változóba, illetve kihasználtam azt, hogy az =~ operátor visszatérési értéke egy lista, aminek elemei $1...$n, meg azt, hogy egy lista elemeit meg lehet feleltetni egy másik lista elemeinek sima = használatával. csak most a lista egyelemű lett, ezért mutat kicsit furcsán a zárójelben lévő $a :)
- A hozzászóláshoz be kell jelentkezni
A sleep jó volt köszi, de még a számokkal bajban vagyok.
ered=`expr $meres2 \- $meres1`
Ez sajnos csak egész számokat kezel, de pl 23,3 számokat már nem. Erre is tudtok megoldást?
- A hozzászóláshoz be kell jelentkezni
ered=`echo "$meres1 / $meres2"|bc -l`
- A hozzászóláshoz be kell jelentkezni