可能重複:
package for detecting users contry in php?
Geo Location based on IP Address - PHPPHP - 檢測國家
我想檢測我的訪問者的國家。
我在Google找到了解決方案, ,但結果不算什麼。
你能幫我嗎?
可能重複:
package for detecting users contry in php?
Geo Location based on IP Address - PHPPHP - 檢測國家
我想檢測我的訪問者的國家。
我在Google找到了解決方案, ,但結果不算什麼。
你能幫我嗎?
<?php
// Author: www.easyjquery.com
$ip = $_SERVER['REMOTE_ADDR'];
// remember chmod 0777 for folder 'cache'
$file = "./cache/".$ip;
if(!file_exists($file)) {
// request
$json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true");
$f = fopen($file,"w+");
fwrite($f,$json);
fclose($f);
} else {
$json = file_get_contents($file);
}
$json = json_decode($json,true);
echo "<pre>";
print_r($json);
?>
Kelley你可以編輯你的答案,並添加一些本地解決方案,我不想使用外部解決方案 我會接受你,如果你能做到這一點 –
嗨邁克爾,檢查這裏,信息也可以下載js文件,以便您可以自己託管解決方案,希望幫助:) http://www.easyjquery.com/2012/11/geo-api-detect-clients-ip-country-city-with-javascript-php/ –
類型2 - fopen(./ cache/72.193.132.49):無法打開流:沒有這樣的文件或目錄 - 在第9行 –
這是我獲得的國家與來訪者的IP一起的方式。
// this is where you get the ip
$ip = $_SERVER['REMOTE_ADDR'];
// this is where you include the code that gets the country
// you can find the code for this file on the link below
include("geoiploc.php");
// this is where you create the variable that get you the name of the country
$country = getCountryFromIP($ip, " NamE ");
希望這有助於。
願代碼與你同在!
更新:
這是我一直在使用
$json = file_get_contents('http://ipinfo.io/' . $this->getIP());
$data = json_decode($json);
return $data->country;
也有這項服務的另一種方法,但我發現一個以上的要好得多......
'http://getcitydetails.geobytes.com/GetCityDetails?fqcn=' . $this->getIP()
以下是獲取ip的好方法:
private function getIP() {
$server_keys = [
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_X_CLUSTER_CLIENT_IP',
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'REMOTE_ADDR'
];
foreach ($server_keys as $key) {
if (array_key_exists($key, $_SERVER) === true) {
foreach (explode(',', $_SERVER[$key]) as $ip) {
if (filter_var($ip, FILTER_VALIDATE_IP) !== false) {
return $ip;
}
}
}
}
}
希望它可以幫助別人!
我非常懷疑谷歌沒有回報你什麼有用的。 –
當然,但我找不到我想要的 –
或這一個http://stackoverflow.com/questions/7766978/geo-location-based-on-ip-address-php –