Zamiana numeru ip na nazw

Potrzebujesz pomocy z C, C++, perl, python, itp.
gaijin
Posty: 42
Rejestracja: 06 czerwca 2012, 08:47

Zamiana numeru ip na nazwę dns skryptem

Post 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?
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post 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.
gaijin
Posty: 42
Rejestracja: 06 czerwca 2012, 08:47

Post 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ć...
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post 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ż.
gaijin
Posty: 42
Rejestracja: 06 czerwca 2012, 08:47

Post 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...
ODPOWIEDZ