Monday, April 13, 2015

[PHP] Cách kiểm tra địa chỉ IP có đến từ Việt Nam hay không?

Để xác định quốc gia của một địa chỉ IP truy cập website ta có thể sử dụng GeoLite2 (Tham khảo thêm tại: http://dev.maxmind.com/geoip/geoip2/geolite2/). Mặc dù dữ liệu GeoLite2 ít chính xác hơn so với dữ liệu GeoIP2 của MaxMind nhưng nó lại là miễn phí và vẫn được cập nhật thường xuyên vào các ngày thứ ba đầu tiên hàng tháng.

GeoLite2 không được MaxMind hỗ trợ tuy nhiên chúng ta có thể tìm thấy nhiều tài liệu, bài viết hướng dẫn sử dụng, gỡ rối trên mạng.

Lưu ý: GeoLite2 được phân phối theo License: Creative Commons Attribution-ShareAlike 3.0 Unported License.

Sử dụng GeoLite2 với ngôn ngữ PHP ta có thể sử dụng MaxMind-DB-Reader: https://github.com/maxmind/MaxMind-DB-Reader-php/tree/master/src/MaxMind/Db. Bạn có thể dùng file tôi đã sắp xếp theo thư mục và có 1 wrapper để gọi đơn giản liên kết sau:

https://drive.google.com/file/d/0B7AGuhjjjSK5b0N2T05RZ2hsVGc/view?usp=sharing

Cách sử dụng ví dụ trong 1 function PHP như sau:

function is_in_vietnam() {
    require_once 'duong_dan_toi_file_GeoLite2Helper.php';
    $helper = new GeoLite2Helper();
    return $helper->checkIpFromVietnam() === "VN";
}

Nếu bạn không thể sử dụng được hoặc muốn trao đổi thêm đừng ngần ngại comment hoặc email cho NKTGL.

No comments:

Post a Comment