Saya memiliki beberapa file log yang berisi banyak alamat ip. Saya akan senang dapat menyalurkan data melalui program yang akan cocok dan menyelesaikan alamat ip.
Yaitu cat / var / log / somelogfile | tuan rumah
yang akan mengubah garis seperti
10:45 diakses oleh 10.13.13.10
ke
10:45 diakses oleh myhostname.intranet
Pikir saya mungkin ada cara untuk melakukan ini dengan kombinasi sed dan host, tetapi saya tidak tahu bagaimana melakukannya. Saya tahu bahwa saya bisa menulis skrip sederhana yang akan melakukannya, tetapi saya lebih suka dapat menggunakan alat bawaan jika memungkinkan. Ada saran?
command-line
sed
pipe
hostname
Daniel
sumber
sumber
Jawaban:
Berikut ini adalah solusi cepat dan kotor untuk ini dengan Python. Itu caching (termasuk caching negatif), tetapi tidak ada threading dan bukan hal tercepat yang pernah Anda lihat. Jika Anda menyimpannya sebagai sesuatu seperti
rdns
, Anda dapat menyebutnya seperti ini:Menjalankannya akan membubuhi keterangan alamat IP dengan catatan PTR mereka di tempat:
Dan inilah sumbernya:
Harap dicatat: ini bukan yang Anda harapkan dari surat itu (menggunakan 'alat standar'). Tapi itu mungkin membantu Anda lebih dari peretasan yang menyelesaikan setiap alamat IP setiap kali itu ditemui. Dengan beberapa baris lagi, Anda bahkan dapat membuatnya cache hasilnya secara terus-menerus, yang akan membantu dengan pemanggilan berulang.
sumber
Saya akan menggunakan
jdresolve -n -a
Dikemas untuk debian, dll. Juga tersedia di:
https://github.com/jdrowell/jdresolve
Saya telah menggunakannya selama lebih dari satu dekade untuk menyelesaikan log apache, squid log, dan apa pun dengan banyak alamat IP yang perlu diselesaikan. Ini berfungsi dengan baik, andal, dan cepat, dan itu bisa cache pencarian dari berjalan sebelumnya.
sumber
skrip bash yang bisa digunakan untuk menyimpan logfile Anda.
output terlihat seperti:
sumber
Perl cepat:
sumber
Jika format log secara konsisten menampilkan sama seperti yang Anda tunjukkan di atas, Anda dapat melakukan ini dengan sangat kotor
echo 10:45 accessed by 10.13.13.10|awk '{print $4}'|nslookup
sumber