Làm thế nào để làm địa chỉ IP tra cứu vị trí địa lý trên Linux
Bạn có thể nhận thấy các dịch vụ khác nhau trên Internet tự động biết bạn đang ở đâu trên thế giới. Từ dịch vụ nhạc và video đến các cửa hàng trực tuyến, các dịch vụ này sử dụng kỹ thuật, được gọi là định vị địa lý IP, phù hợp với vị trí thực tế gần đúng của bạn với địa chỉ IP bạn đang sử dụng. Bất cứ khi nào bạn kết nối với Internet, thiết bị của bạn được gán một địa chỉ IP từ một nhóm địa chỉ được phân bổ cho các công ty viễn thông khác nhau. Cách các địa chỉ này hoạt động có thể khá phức tạp, nhưng vì chúng được gán trong các khối, có thể xây dựng một cơ sở dữ liệu ánh xạ một khối địa chỉ cho một quốc gia hoặc thậm chí một khu vực hoặc thành phố cụ thể.
Tin tốt là làm các tra cứu vị trí địa lý không chỉ dành cho các trang web lớn và doanh nghiệp lớn. Có một số dịch vụ trực tuyến miễn phí và thậm chí là công cụ dòng lệnh cho Linux cho phép bạn tra cứu địa chỉ IP và nhận thông tin về địa chỉ được gán. Điều này có thể rất hữu ích khi bạn đang điều tra một email đáng ngờ hoặc nhận xét lạ trên blog. Nó cũng hữu ích khi sử dụng các dịch vụ che giấu địa chỉ IP của bạn, như VPN, để đảm bảo rằng chúng hoạt động như được quảng cáo.
Để tìm kiếm một địa chỉ IP từ dòng lệnh Linux, bạn cần phải cài đặt công cụ "geoiplookup". Để sử dụng Ubuntu và Raspbian:
sudo apt-get cài đặt geoip-bin
Để tra cứu một loại địa chỉ IP như sau:
geoiplookup 8.8.4.4
Thay thế 8.8.4.4 bằng địa chỉ bạn muốn tra cứu. Trong ví dụ này, địa chỉ 8.8.4.4 (là một trong các máy chủ DNS của Google) được báo cáo chính xác dưới dạng địa chỉ từ Hoa Kỳ.
Cơ sở dữ liệu được cung cấp với bản phân phối Linux của bạn có thể đã lỗi thời; bạn có thể kiểm tra xem khi nào nó được tạo bằng cờ -v
:
geoiplookup -v 8.8.4.4
Trong trường hợp này, chúng tôi thấy rằng cơ sở dữ liệu đã được tạo vào tháng 8 năm 2013.
Cơ sở dữ liệu định vị địa lý được cung cấp bởi MaxMind và công ty sẽ làm mới cơ sở dữ liệu của nó mỗi tháng. Bạn có thể cập nhật cơ sở dữ liệu bằng cách tải xuống các tệp mới nhất trực tiếp từ MaxMind.com.
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz khẩu súng lục GeoIP.dat.gz sudo cp GeoIP.dat / usr / share / GeoIP /
Bây giờ bạn có thể truy vấn lại cơ sở dữ liệu cho ngày xây dựng của nó:
geoiplookup -v 8.8.4.4
Công cụ hiện báo cáo rằng cơ sở dữ liệu đã được tạo vào tháng 4 năm 2014.
MaxMind cũng cung cấp một cơ sở dữ liệu thành phố, mà trong nhiều trường hợp cho độ chính xác cao hơn. Để cài đặt nó, sử dụng các lệnh sau để tải xuống cơ sở dữ liệu và sao chép nó vào thư mục GeoIP:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz khẩu súng lục GeoLiteCity.dat.gz sudo cp GeoLiteCity.dat / usr / share / GeoIP /
Để có được thông tin về thành phố, bạn cần phải nói với công cụ “ geoiplookup
” để sử dụng cơ sở dữ liệu thành phố:
geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 71.3.9.242
Lần này, geoiplookup cho chúng ta biết địa chỉ ở Florida và cụ thể hơn ở Summerfield, Florida.
Dịch vụ trực tuyến
Cũng như công cụ geoiplookup, có một số dịch vụ trực tuyến có thể cung cấp thông tin vị trí địa lý. Ví dụ: nếu bạn mở geoiptool.com trong trình duyệt web của mình, trang web sẽ cung cấp cho bạn thông tin về vị trí hiện tại của bạn.
Một trang web khác freegeoip.net có một API được thiết kế để được sử dụng trong phần phụ trợ của các trang web hoặc từ bên trong các ứng dụng. Tuy nhiên, nó cũng có thể được sử dụng từ dòng lệnh bằng cách sử dụng “ curl
.” Trước tiên, hãy đảm bảo rằng bạn đã cài đặt “ curl
”:
sudo apt-get cài đặt curl
Để nhận thông tin vị trí địa lý ở định dạng XML, hãy sử dụng:
curl freegeoip.net/xml/72.4.9.242
Đầu ra XML cho thấy địa chỉ IP 72.4.9.242 được sử dụng ở Evansville, Indiana. Bạn cũng có thể nhận được cùng một dữ liệu ở định dạng CSV hoặc JSON bằng cách thay đổi phần “xml” của URL thành “csv” hoặc “json” tương ứng.
Công cụ geoiplookup và các dịch vụ trực tuyến có thể rất hữu ích. Nếu bạn có bất kỳ câu hỏi nào về việc sử dụng chúng, vui lòng hỏi trong phần bình luận bên dưới.