2017-07-14 33 views
1

我想從其IP地址中檢索用戶的城市,州和國家等信息,以便我可以根據其位置顯示帖子。在PHP codeigniter中有這樣一個好的可靠的方法嗎?我使用PHP codeigniter進行服務器端腳本,MySQL使用數據庫。謝謝在codeigniter中啓用地理位置

+4

歡迎StackOverflow上。這種類型的問題對於StackOverflow是無關緊要的(_and可能會關閉)。在發佈問題之前,您應該瀏覽[https://stackoverflow.com/tour],然後轉到[幫助部分](http://stackoverflow.com/help)閱讀[什麼我應該避免問什麼類型的問題?](http://stackoverflow.com/help/on-topic)。最後,如果你確定你的問題符合規則,請閱讀[如何在StackOverflow上提出問題](http://stackoverflow.com/help/how-to-ask),以便能夠創建一個有用的,格式良好的話題上的問題。 –

+0

@gp_sflover這是如何「離題」?我沒有看到真正的單詞*「推薦我一個圖書館」*在這裏。這個問題似乎只是說OP至少知道他們想要做「地理位置」,但不瞭解其背後的過程。也許放棄鏈接到圖書館或詢問*「你試過圖書館/服務嗎?你知道如何使用它嗎?」*會更有效率。因爲就「規則」而言,似乎你和其他人實際上並不瞭解這些規則是什麼。可能甚至是一個重複的問題,但你們誰都不會投一票。 –

+0

如果我是你,我只需搜索資源:https://www.google.com/search?q=php+geolocation。如果您對特定方法有任何疑問,那麼您應該提出有關實施該代碼的問題。 –

回答

-1

嗨,你需要聯繫外部服務來做到這一點。

在codeigniter中,您可以使用$this->input->ip_address()來獲取IP地址,您可以將其傳遞給免費服務,如IP Find以獲取位置信息。

<?php 
$request_uri = 'https://ipfind.co'; 
$ip_address = $this->input->ip_address(); 
$auth = 'YOUR_API_KEY_HERE'; 
$url = $request_uri . "?ip=" . $ip_address; 
$document = file_get_contents($url); 
$result = json_decode($document); 
?> 

結果:

{ 
ip_address: "8.8.8.8", 
country: "United States", 
country_code: "US", 
continent: "North America", 
continent_code: "NA", 
city: null, 
county: null, 
region: null, 
region_code: null, 
timezone: null, 
owner: null, 
longitude: -97.822, 
latitude: 37.751, 
currency: "USD", 
languages: [ 
"en-US", 
"es-US", 
"haw", 
"fr" 
] 
}