當我們在頁面中填寫個人資料中的省市資訊時,頁面會根據當前使用者所在的城市自動選中省市下拉選項;當我們訪問某個大型站點時,**程式會自動進入到使用者當前所在的城市頻道。這些功能是如何實現的呢?今天我們來通過例項講解如何根據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']; //利用上述方法獲得本地城市名稱
這樣,就可以根據使用者所在的城市跳轉到拉手網對應的頻道頁面了。請看演示dem 根據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定位使用者所在城市資訊。根據當前使用者本地ip位址,查詢ip位址庫,獲取ip所在...
根據IP定位使用者所在城市資訊
即可返回當前ip所在的省市資訊。本地js呼叫 varmyprovince remote ip info province varmycity remote ip info city varmydistrict remote ip info district function html 為 您所在的城...