อ่านชื่อประเทศและรหัสประเทศ (iso) จาก IP ของผู้เยี่ยมชม
การอ่านข้อมูล Geolocation จาก IP Address โดยใช้ Free API จาก ip-api.com โดยในตัวอย่างนี้ เป็นการใช้ IP ของผู้เยี่ยมชมเว็บไซต์เราในการนำไปหาประเทศของผู้เยี่ยมชม
ข้อจำกัดของสคริปต์นี้คือ สามารถอ่านข้อมูลได้ไม่เกิน 150 ครั้งต่อ 1 นาที ตามข้อกำหนดของ http://ip-api.com/docs/
ข้อจำกัดของสคริปต์นี้คือ สามารถอ่านข้อมูลได้ไม่เกิน 150 ครั้งต่อ 1 นาที ตามข้อกำหนดของ http://ip-api.com/docs/
<?php
// IP from visitor
if (isset($_SERVER['HTTP_CLIENT_IP']) && filter_var($_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP)) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP)) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['REMOTE_ADDR']) && filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
if (!empty($ip)) {
// get Geolocation from IP (Free API)
$query = json_decode(file_get_contents('http://ip-api.com/json/'.$ip));
if ($query) {
if ($query->status == 'success') {
// success
echo $ip.' from '.$query->country.' ('.$query->countryCode.')';
} else {
// error
echo $query->query.' '.$query->message;
}
exit;
}
}
echo 'Unable to get country';