Cari URL dari daftar alamat IP

0

Log router saya mencatat aktivitas berdasarkan alamat IP, tetapi saya ingin melihat alamat URL yang sesuai. Apakah ada cara untuk memperoleh URL dari IP - dalam jumlah besar / batch - tanpa harus melakukannya secara manual / individual satu baris setiap kali?

Francisco
sumber
1
@ Franciso - Anda mengerti bahwa beberapa situs web dapat memiliki alamat ip yang sama. Apa yang Anda inginkan tidak realistis.
Ramhound
Anda mungkin memiliki masalah dengan situs host bersama, jika seseorang mengunjungi 198.252.206.16 mereka pergi ke stackoverflow.com, workplace.stackexchange.com, cs.stackexchange.com, dsp.stackexchange.com, crypto.stackexchange.com, movies.stackexchange.com, raspberrypi.stackexchange.com, academia.stackexchange.com, mechanics.stackexchange.com, history.stackexchange.com, biology.stackexchange.com, outdoors.stackexchange.com, bitcoin.stackexchange.com, quant.stackexchange.com, bricks.stackexchange.com, atau pm.stackexchange.com?
Scott Chamberlain
@Scott tapi tetap saja, alamat IP langsung ke "halaman utama". Tentu itu tidak akan memberikan nama yang tepat, tetapi untuk beberapa tujuan mungkin cukup. Apa produsen dan OS router Anda? Mungkin membantu mereka yang menjawab.
Doktoro Reichard
Pada OS apa yang Anda gunakan?
50-3

Jawaban:

1

Jika Anda memiliki daftar, Anda bisa melakukan ini dengan mudah pada setiap OS menggunakan Python 's dibangun di socketmodul.

import socket
socket.gethostbyaddr('198.252.206.16')

Itu kembali:

('stackoverflow.com', ['16.206.252.198.in-addr.arpa'], ['198.252.206.16'])

Jadi skripkan apa pun yang tidak sulit sama sekali, cukup ip per baris dalam file dan lakukan sesuatu seperti:

import socket

fi = open('iplist.txt')
for line in fi.readlines():
    print( socket.gethostbyaddr( line )[0] )
fi.close()

Tentu saja, Anda dapat menyesuaikan output untuk menulis IP dan nama domain ke file lain jika diinginkan.

Namun, seperti yang ditunjukkan oleh @ScottChamberlain - ini mungkin tidak selalu menyelesaikan untuk situs yang berbagi IP (subdomain dan semacamnya termasuk).

nerdwaller
sumber
0

Asumsikan Anda memiliki file teks ips.txtdengan daftar alamat ip:

$ cat ips.txt | xargs host

Atau Anda dapat menulis skrip bash yang elegan untuk memformat hasil:

for ip in $(cat ips.txt); do
    domain_names=$(host $ip | grep "domain name" | awk '{print $5}' | tr ".\\n" " ")

    # test first char of domain names
    if [ -n ${domain_names:0:1} ]; then
        echo "$ip $domain_names" 
    else
        echo "$ip not found"
    fi
done
shawmzhu
sumber
Apa yang membuat Anda berpikir OP menggunakan Linux yang dipasangkan dengan BASH? Saya pikir itu adalah kesalahan mendasar dalam jawaban Anda, bahkan jika itu mungkin berhasil (tidak mengujinya, tetapi saya berasumsi Anda melakukannya sebelum memposting).
nerdwaller