Strona 1 z 1

Zamiana numeru ip na nazwę dns skryptem

: 03 października 2012, 10:30
autor: gaijin
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:

Kod: Zaznacz cały

212.77.100.101
a chcę:

Kod: Zaznacz cały

[url]www.wp.pl[/url]


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?

: 03 października 2012, 19:04
autor: kodama
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.

: 04 października 2012, 08:33
autor: gaijin
No tak, ale ja potrzebuję nie tylko je wyciągnąć, tylko raczej zamienić całą linię z portem, czasem wystąpienia.
Pobawię 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ć...

: 04 października 2012, 19:27
autor: kodama
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ż.

: 05 października 2012, 09:13
autor: gaijin
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?

Kod: Zaznacz cały

IP: 4118linii; host 9126 linii....

Znalazłem:

Kod: Zaznacz cały

host -r ip...