根據IP定位使用者所在城市資訊

2021-09-06 08:35:31 字數 2819 閱讀 2115

當我們在頁面中填寫個人資料中的省市資訊時,頁面會根據當前使用者所在的城市自動選中省市下拉選項;當我們訪問某個大型站點時,**程式會自動進入到使用者當前所在的城市頻道。這些功能是如何實現的呢?今天我們來通過例項講解如何根據ip定位使用者所在城市資訊。

根據當前使用者本地ip位址,查詢ip位址庫,獲取ip所在的省市資訊,目前有多種方式實現該功能。

我們結合本站helloweba文章:基於jquery+json的省市聯動效果中的省市下拉外掛程式,來定位當前使用者所在的省市,即預設狀態選中的是當前使用者所在的省市。

本地js呼叫:

var myprovince = remote_ip_info['province']; 

var mycity = remote_ip_info['city'] 

var mydistrict = remote_ip_info['district']; 

$(function()); 

}); 

html**為:

>您所在的城市是:

id="city_1"

>

class="prov"

>

class="city"

>  

2.呼叫**ip位址庫

呼叫方法:

$(function()); 

}); 

gettaoip.php用來獲取**的對應ip的省市資訊,返回的是json格式的資料。

$

ip = get_client_ip(); //獲取當前使用者的ip

$url = "".$

ip; 

$data = file_get_contents($

url); //呼叫**介面獲取資訊

echo

$data; 

get_client_ip()用來獲取本地使用者的ip位址。

//獲取使用者真實ip

function get_client_ip()  

3.呼叫純真ip庫

使用php呼叫純真ip庫的方法,本文不詳述,請戳這裡:

4.呼叫本地資料庫

由於ip資料量大,一般有三四十萬條資料,我們要進行表結構索引優化。

create table if not exists `iptocity` ( 

`ip_start` double(53,0) not null default '0', 

`ip_end` double(53,0) default null, 

`ip_province` varchar(6) default null, 

`ip_city` varchar(10) default null, 

primary key (`ip_start`), 

key `ip_end` (`ip_end`) 

) engine=myisam default charset=utf8; 

呼叫方法:

$(function()); 

}); 

}); 

前端通過ajax向getip.php傳送非同步請求,getip.php讀取mysql中的ip資料,返回對應ip位址的省市資訊。

include_once("connect.php");//鏈結資料庫

$myip = get_client_ip(); //獲取本地ip,get_client_ip()函式在上文中已給出

$ip=ip2int($

myip); //轉換ip

$sql="select ip_province,ip_city from iptocity where ip_start<='$ip' order by ip_start desc  

limit 1"; 

$query = mysql_query($

sql); //查詢庫

$rs = mysql_fetch_array($

query); 

$arr = array( 

'province'=>$

rs['ip_province'], 

'city'=>$

rs['ip_city'], 

); echo json_encode($

arr); //返回json資料

//將ip位址轉換成整型

function ip2int($

ip) 

注意我們使用自定義函式ip2int()將ip位址轉換成整型,而不是用php自帶函式ip2long(),因為ip2long()有時會將ip轉換成負數,所以為了保險使用自定義函式ip2int()。

5.應用:根據使用者所在城市跳轉到不同的頁面

通過上面的講解我們知道如何獲取本地使用者的城市資訊,現在我們要根據使用者所在的城市訪問不同頁面。我們以拉手網為例,在go.php中寫入如下**:

$

city = $

d['city']; //利用上述方法獲得本地城市名稱

這樣,就可以根據使用者所在的城市跳轉到拉手網對應的頻道頁面了。請看演示demo

根據IP定位使用者所在城市資訊

即可返回當前ip所在的省市資訊。本地js呼叫 var myprovince remote ip info province var mycity remote ip info city var mydistrict remote ip info district function html 為 您所...

根據IP定位使用者所在城市資訊

即可返回當前ip所在的省市資訊。本地js呼叫 varmyprovince remote ip info province varmycity remote ip info city varmydistrict remote ip info district function html 為 您所在的城...

根據IP定位使用者所在城市資訊

當我們在頁面中填寫個人資料中的省市資訊時,頁面會根據當前使用者所在的城市自動選中省市下拉選項 當我們訪問某個大型站點時,程式會自動進入到使用者當前所在的城市頻道。這些功能是如何實現的呢?今天我們來通過例項講解如何根據ip定位使用者所在城市資訊。根據當前使用者本地ip位址,查詢ip位址庫,獲取ip所在...