Sau đây là phiên bản sửa đổi của đoạn trích tôi thấy sử dụng //ipinfodb.com/ip_locator.php để lấy thông tin của nó. Hãy nhớ rằng, bạn cũng có thể đăng ký khóa API với họ và sử dụng API trực tiếp để nhận thông tin được cung cấp khi bạn thấy phù hợp.
Đoạn trích
function detect_location[$ip=NULL, $asArray=FALSE] {
if [empty[$ip]] {
if [!empty[$_SERVER['HTTP_CLIENT_IP']]] { $ip = $_SERVER['HTTP_CLIENT_IP']; }
elseif [!empty[$_SERVER['HTTP_X_FORWARDED_FOR']]] { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }
else { $ip = $_SERVER['REMOTE_ADDR']; }
}
elseif [!is_string[$ip] || strlen[$ip] < 1 || $ip == '127.0.0.1' || $ip == 'localhost'] {
$ip = '8.8.8.8';
}
$url = '//ipinfodb.com/ip_locator.php?ip=' . urlencode[$ip];
$i = 0; $content; $curl_info;
while [empty[$content] && $i < 5] {
$ch = curl_init[];
$curl_opt = array[
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 1,
CURLOPT_REFERER => '//' . $_SERVER['HTTP_HOST'],
];
if [isset[$_SERVER['HTTP_USER_AGENT']]] $curl_opt[CURLOPT_USERAGENT] = $_SERVER['HTTP_USER_AGENT'];
curl_setopt_array[$ch, $curl_opt];
$content = curl_exec[$ch];
if [!is_null[$curl_info]] $curl_info = curl_getinfo[$ch];
curl_close[$ch];
}
$araResp = array[];
if [preg_match['{City : [[^