Tra cứu URL từ danh sách địa chỉ IP


0

Nhật ký bộ định tuyến của tôi ghi chú hoạt động theo địa chỉ IP nhưng tôi muốn xem các địa chỉ URL tương ứng. Có cách nào để lấy URL từ IP - hàng loạt / đợt - mà không phải thực hiện thủ công / riêng lẻ một dòng một lần không?


1
@Franciso - Bạn hiểu rằng nhiều trang web có thể có cùng một địa chỉ IP. Những gì bạn muốn là không thực tế.
Ramhound

Bạn có thể gặp sự cố với các trang web được lưu trữ được chia sẻ, nếu ai đó truy cập 198.252.206.16 họ đã đi đến 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, hoặc là pm.stackexchange.com?
Scott Chamberlain

@ Hủy bỏ nhưng vẫn có, địa chỉ IP thực hiện trực tiếp đến "trang chính". Chắc chắn rằng nó sẽ không cung cấp một tên chính xác, nhưng đối với một số mục đích, nó có thể là đủ. Nhà sản xuất bộ định tuyến và hệ điều hành của bạn là gì? Nó có thể giúp những người đang trả lời.
Doktoro Reichard

Bạn đang sử dụng hệ điều hành nào
50-3

Câu trả lời:


1

Nếu bạn có một danh sách, bạn có thể thực hiện việc này khá dễ dàng trên mọi hệ điều hành bằng cách sử dụng Con trăn được xây dựng trong socket mô-đun.

import socket
socket.gethostbyaddr('198.252.206.16')

Điều đó trả về:

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

Vì vậy, kịch bản hóa mọi thứ sẽ không khó khăn chút nào, chỉ cần có một ip trên mỗi dòng trong một tệp và làm một cái gì đó như:

import socket

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

Tất nhiên, bạn có thể điều chỉnh đầu ra để ghi IP và tên miền vào một tệp khác nếu bạn muốn.

Tuy nhiên, như @ScottChamberlain chỉ ra - điều này có thể không phải lúc nào cũng giải quyết cho trang web có chung IP (tên miền phụ và bao gồm như vậy).


0

Giả sử bạn có một tệp văn bản ips.txt với một danh sách các địa chỉ IP:

$ cat ips.txt | xargs host

Hoặc bạn có thể viết một tập lệnh bash thanh lịch để định dạng kết quả:

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

Điều gì khiến bạn nghĩ rằng OP đang sử dụng Linux được ghép nối với BASH? Tôi nghĩ đó là một lỗ hổng cơ bản trong câu trả lời của bạn, ngay cả khi nó có thể hoạt động (không kiểm tra nó, nhưng tôi cho rằng bạn đã làm trước khi đăng).
nerdwaller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.