Sziasztok
nfdump kemenetét kellene feldolgoznom, de van egy kis problémám.
amikor alapban meghívom az nfdump-ot, egy hasonlót kapok:
Date first seen Duration Proto Src IP Addr Flows Packets Bytes pps bps bpp
2009-08-08 02:04:31.850 86344.330 any 192.168.10.200 89660 2.6 M 1.4 G 30 138456 558
2009-08-08 16:14:27.760 35348.820 any 192.168.10.168 31456 1.3 M 973.5 M 38 231015 756
2009-08-08 10:57:07.450 54389.170 any 192.168.30.70 34428 1.2 M 428.6 M 23 66109 344
2009-08-08 01:34:29.670 83142.640 any 192.168.10.198 23956 505840 161.7 M 6 16312 335
2009-08-08 12:21:09.520 41404.440 any 192.168.10.104 17409 319523 103.4 M 7 20950 339
2009-08-08 14:55:35.340 40080.620 any 192.168.10.120 22682 760900 103.0 M 18 21566 142
2009-08-08 15:23:31.660 12217.190 any 192.168.10.36 7164 63165 51.9 M 5 35655 862
2009-08-08 02:02:19.340 86476.160 any 192.168.10.188 19596 431104 44.8 M 4 4346 108
2009-08-08 09:17:53.140 60341.220 any 192.168.10.110 21631 217804 34.5 M 3 4801 166
2009-08-08 09:46:44.920 19478.780 any 192.168.10.156 16578 469766 29.8 M 24 12848 66
ezzel az a gondom, hogy a bytes mező alatti értékek nem egyformák, van Giga, Mega, Byte, és így nem tudom jól
kiszedni az értékeket.
erre találtam azt, hogy az nfdump meghívható -o pipe kapcsolóval, ahol ilyen lesz a kimeneti formátum:
2|1249689871|850|1249776216|180|0|0|0|0|3232238280|89660|2676165|1494370110|30|138456|558
2|1249740867|760|1249776216|580|0|0|0|0|3232238248|31456|1349041|1020764218|38|231015|756
2|1249721827|450|1249776216|620|0|0|0|0|3232243270|34428|1304953|449456418|23|66109|344
2|1249688069|670|1249771212|310|0|0|0|0|3232238278|23956|505840|169528672|6|16312|335
2|1249726869|520|1249768273|960|0|0|0|0|3232238184|17409|319523|108430303|7|20950|339
2|1249736135|340|1249776215|960|0|0|0|0|3232238200|22682|760900|108050758|18|21566|142
2|1249737811|660|1249750028|850|0|0|0|0|3232238116|7164|63165|54451330|5|35655|862
2|1249689739|340|1249776215|500|0|0|0|0|3232238268|19596|431104|46979061|4|4346|108
2|1249715873|140|1249776214|360|0|0|0|0|3232238190|21631|217804|36213895|3|4801|166
2|1249717604|920|1249737083|700|0|0|0|0|3232238236|16578|469766|31285035|24|12848|66
itt a byte -ok szépen szerepelnek, csak az ip címekkel van gondom (csak a cím és a byte kell az egészből)
a címeket "IP addresses are printed as 4 consecutive 32bit numbers" formában írja ki.
A fenti példában a 192.168.10.200 -at 3232238280-nak jeleníti meg.
kérdésem, hogyan lehet visszafejteni, hogy a 323... ból megkapjam a kívánt ip címet.
a 32 bites számot hogyan lehet bash -ban 4 db nyolcbitesre felosztani
köszi
- 958 megtekintés
Hozzászólások
Ha csak a forráscím és a Bytes mező kell:
nfdump -o "fmt:%sa %byt"
És akkor nem kell tovább bash-al formázgatni.
Hint: Custom output format: -o fmt:..
- A hozzászóláshoz be kell jelentkezni
köszi szépen, de nem jó, mert a "-s srcip/bytes" használom, és így nem működik az -o fmt kapcsoló
- A hozzászóláshoz be kell jelentkezni
echo $(( ( 3232238280 & ( 2**32 - 2**24 ) ) >> 24 )) # 192
echo $(( ( 3232238280 & ( 2**24 - 2**16 ) ) >> 16 )) # 168
echo $(( ( 3232238280 & ( 2**16 - 2**8 ) ) >> 8 )) # 10
echo $(( ( 3232238280 & ( 2**8 - 2**0 ) ) >> 0 )) # 200
Ezen jocskan lehet meg egyszerusiteni (">> 0", "2**0", zarojelek), csak azert irtam igy, hogy latszodjon a logikaja (kimaszkoljuk a megfelelo byte-ot es shifteljuk a legkisebb helyiertekre).
- A hozzászóláshoz be kell jelentkezni
köszi
- A hozzászóláshoz be kell jelentkezni