Câu trả lời:
Lệnh là phần dễ, phần khó là có quyền truy cập vào cơ sở dữ liệu.
Ví dụ: Ubuntu có một cơ sở dữ liệu miễn phí với công cụ truy vấn dòng lệnh ( geoiplookup
) trong gói. Nhưng nó chỉ hiển thị thông tin quốc gia và sử dụng cơ sở dữ liệu tĩnh (do đó lỗi thời). Công cụ này cũng có thể truy vấn cơ sở dữ liệu MaxMind GeoIP, nếu bạn có đăng ký ở đó.geoip-bin
Có nhiều cơ sở dữ liệu GeoIP khác nhau mà bạn có thể tra cứu. Chúng thường có nghĩa là được xem qua trình duyệt web, nhưng bạn có thể tìm kiếm một tập lệnh cạo. Ví dụ: đây là tập lệnh ruby để lấy dữ liệu từ cơ sở dữ liệu MaxMind . Lưu ý rằng việc nạo có thể trái với điều khoản dịch vụ của cơ sở dữ liệu.
geoipupdate; geoiplookup ...
Thủ thuật này thậm chí còn đẹp hơn và không yêu cầu bất kỳ gói bên ngoài nào:
curl ipinfo.io/23.66.166.151
curl ipinfo.io/$(dig +short yourdomain.com)
Đây là một lựa chọn tuyệt vời khác. Hướng dẫn tại đây: http://kbeezie.com/geoiplookup-command-line/
Ví dụ: trên Centos :
$ sudo yum install GeoIP GeoIP-data
$ geoiplookup 8.8.4.4
Hoạt động hoàn hảo.
Và tất nhiên, bạn luôn có thể thiết lập điều này như một cron:
$ /usr/bin/geoipupdate
geoipupdate
là một công cụ MaxMind, bạn cần đăng ký và khóa cấp phép /etc/GeoIP.conf
. Tôi không thể sử dụng giải pháp thay thế miễn phí ( Đã nhận được mã trạng thái HTTP không mong muốn là 401 ).