Potrzebujesz pomocy z C, C++, perl, python, itp.
gaijin
Posty: 42 Rejestracja: 06 czerwca 2012, 08:47
Post
autor: gaijin » 03 października 2012, 10:30
Cześć
.
M am duży plik do analizy, w którym występują adresy ip ale chciałbym by były widoczne zamiast nich nazwy dns, czyli mam:
a chcę:
Coś takiego mam w pliku:
Kod: Zaznacz cały
3 09:39:29 linux-suse kernel: [ 5854.240118] wychodzace ok IN= OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=212.77.100.101 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=42441 DF PROTO=TCP SPT=41153 DPT=80 WINDOW=43 RES=0x00 ACK FIN URGP=0
Czy ktoś pomoże?
kodama
Junior Member
Posty: 633 Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań
Post
autor: kodama » 03 października 2012, 19:04
Ja bym próbował robić tak - sprawdzić jaki adres ip kieruje na jaką domenę możesz np. poleceniem host:
Kod: Zaznacz cały
kodama@debian:~$ host 212.77.100.101
101.100.77.212.in-addr.arpa domain name pointer www.wp.pl.
Kwestia tylko, żebyś sobie "wyłuskał" z pliku adresy ip, przekazał sobie do skryptu i masz domeny.
gaijin
Posty: 42 Rejestracja: 06 czerwca 2012, 08:47
Post
autor: gaijin » 04 października 2012, 08:33
N o tak
, ale ja potrzebuję nie tylko je wyciągnąć, tylko raczej zamienić całą linię z portem, czasem wystąpienia
.
P obawię się poleceniem sed w takim razie, czy może innego użyć?
Kod: Zaznacz cały
sed -n 's/.*\(SRC[^<]*LEN\).*/\1/p' cos|sed -e 's/ LEN //g'|cut -c 1-42|sed -e 's/ LEN//g'|sed -e 's/ LE//g'
Daje to wynik pewny ale czy da się jakoś łatwiej wyciąć określone bloki danch czyli pomiędzy 1 a 2 i 3 i 4 i złożyć...
kodama
Junior Member
Posty: 633 Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań
Post
autor: kodama » 04 października 2012, 19:27
Na szybko to ja bym zrobił tak:
Kod: Zaznacz cały
#!/bin/bash
while read line; do
z=` echo $line | sed -n 's/.*DST=\([0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}\).*/\1/p'`;
f=`host $z`;
echo $f | awk '{print $5}'>>wyjsciowy;
done<qwerty
przekazujesz sobie wszystkie wyniki "rozwiązanych" adresów ip do pliku wyjsciowy i już.
gaijin
Posty: 42 Rejestracja: 06 czerwca 2012, 08:47
Post
autor: gaijin » 05 października 2012, 09:13
Już jakoś sobie radzę ale: skrypt robiący hosty nie działa - tworzy za dużo danych - jak napisać skrypt, który robi host i każda z danych w pliku, w którym są tylko adresy IP?
Kod: Zaznacz cały
cat plik2|while read linia;do host $linia;done
Ale tworzy mi znacznie więcej linii wynikowych niż mam adresów IP. Nie wiem o co chodzi?
Znalazłem: