撕开奶罩疯狂揉吮奶头_天堂69堂在线精品视频软件_亚洲中文av一区二区三区_成人无码A片一区二区三区免费看_日韩欧美亚_天天干天天操

18842388900

網(wǎng)站建設(shè) APP開發(fā) 小程序

Article/文章

記錄成長點滴 分享您我感悟

您當(dāng)前位置>首頁 > 知識 > 網(wǎng)站建設(shè)

PHP通過IP

獲取當(dāng)前城市 PHP獲取IP地址

這個比較簡單,你可以使用PHP自帶的函數(shù),PHP中文手冊看看,有現(xiàn)成的例子,但更多的解釋,直接就代碼,

A部分:

$ xp_UserIp=($ _ SERVER ['HTTP_VIA'])?$ _ SERVER ['HTTP_X_FORWARDED_FOR']: $ _SERVER ['REMOTE_ADDR'];

$ xp_UserIp=($ xp_UserIp)?$ xp_UserIp: $ _SERVER ['REMOTE_ADDR'];>PHP通過IP地址判斷用戶所在城市

上面已經(jīng)獲得了用戶IP地址,然后我們根據(jù)該IP地址獲取用戶的城市。在我們開始之前,我們需要下載一個現(xiàn)成的數(shù)據(jù)庫QQIP數(shù)據(jù)庫。

附:最新騰訊QQIP數(shù)據(jù)庫2011.04.10純版下載

用法:解壓后QQWry.Dat是我們想要IP地址的數(shù)據(jù)庫,我們創(chuàng)建一個新的ipcity文件夾,把數(shù)據(jù)庫放在下面。 QQIP數(shù)據(jù)庫使用起來非常方便,數(shù)據(jù)也很齊全,可以及時關(guān)注官方更新,保持?jǐn)?shù)據(jù)最新,強(qiáng)烈推薦它:)

接下來,我們在上面的ipcity目錄中創(chuàng)建一個新的ipaddress.php文件,直接復(fù)制以下代碼,并評論重要的地方。

B節(jié):

/*函數(shù)名稱:ipCity

參數(shù)說明:$ userip——用戶IP地址

功能:PHP通過IP地址判斷用戶的城市

作者:杰森

聯(lián)系: admin@sslook.com */

functionipCity($ USERIP){

//IP數(shù)據(jù)庫路徑,這里是QQIP數(shù)據(jù)庫20110405純版

$ dat_path=” QQWry.dat”;

//確定IP地址是否有效

如果(!EREG( “^([0-9] {1,3})。{3} [0-9] {1,3} $”,$ USERIP)){

Return'IPAddressInvalid”;

}

//打開IP數(shù)據(jù)庫

如果(!$ FD=@的fopen($ dat_path,” RB”)){

Return'IPdatafilenotexistsoraccessdenied”;

}

//explode函數(shù)分解IP地址并計算整數(shù)形狀的結(jié)果

$ USERIP=爆炸(,$ USERIP“”);

$ useripNum=$ USERIP [0] * 16777216 + $ USERIP [1] * 65536 + $ USERIP [2] * 256 + $ USERIP [3];

//獲取IP地址索引的開始和結(jié)束位置

$ DataBegin=的fread($ FD,4);

$ DATAEND=的fread($ FD,4);

$ useripbegin=破滅(”解包(‘L’,$ DataBegin));

如果($ useripbegin℃,)$ useripbegin +=POW(2,32);

$ useripend=破滅(”解包(‘L’,$ DATAEND));

如果($ useripend℃,)$ useripend +=POW(2,32);

$ useripAllNum=($ $ useripend- useripbegin)/7 + 1;

$ BeginNum=0;

$ EndNum=$ useripAllNum;

//使用二進(jìn)制搜索方法從索引記錄中搜索匹配的IP地址記錄

而($ userip1num> $ useripNum || $ userip2num< $ useripNum){

$中東=INTVAL(($ EndNum + $ BeginNum)/2);

//將索引位置的偏移指針讀取為4個字節(jié)

FSEEK($ FD,$ useripbegin + 7 * $中);

$ useripData1=的fread($ FD,4);

如果(strlen的($ useripData1)LT; 4){<>

FCLOSE($ FD);

return'FileError”;

}

//提取數(shù)據(jù)轉(zhuǎn)換增長整形,如果數(shù)據(jù)為負(fù),則再加2到32次冪

$ userip1num=破滅(”解包(‘L’,$ useripData1));

如果($ userip1num℃,)$ userip1num +=POW(2,32);

//提取的長整數(shù)的數(shù)量大于我們的IP地址,并且為下一個循環(huán)修改結(jié)束位置

如果($ userip1num> $ useripNum){

$ EndNum=$中東;

繼續(xù);

}

//在取得上一個索引后取最后一個索引

$ DataSeek=的fread($ FD,3);

如果(strlen的($ DataSeek)LT; 3){<>

FCLOSE($ FD);

return'FileError”;

}

$ DataSeek=破滅(”解壓縮(‘L’,$ DataSeek.chr(0)));

FSEEK($ FD,$ DataSeek);

$ useripData2=的fread($ FD,4);

如果(strlen的($ useripData2)LT; 4){<>

FCLOSE($ FD);

return'FileError”;

}

$ userip2num=破滅(”解包(‘L’,$ useripData2));

如果($ userip2num℃,)$ userip2num +=POW(2,32);

//找不到與IP地址對應(yīng)的城市

如果($ userip2num< $ useripNum){

如果($中東==$ BeginNum){

FCLOSE($ FD);

Return'NoData”;

}

$ BeginNum=$中東;

}

}

$ useripFlag=的fread($ FD,1);

如果($ useripFlag==CHR(1)){

$ useripSeek=的fread($ FD,3);

如果(strlen的($ useripSeek)LT; 3){<>

FCLOSE($ FD);

Return'SystemError”;

}

$ useripSeek=破滅(”解壓縮(‘L’,$ useripSeek.chr(0)));

FSEEK($ FD,$ useripSeek);

$ useripFlag=的fread($ FD,1);

}

如果($ useripFlag==CHR(2)){

$ AddrSeek=的fread($ FD,3);

如果(strlen的($ AddrSeek)LT; 3){<>

FCLOSE($ FD);

Return'SystemError”;

}

$ useripFlag=的fread($ FD,1);

如果($ useripFlag==CHR(2)){

$ AddrSeek2=的fread($ FD,3);

如果(strlen的($ AddrSeek2)LT; 3){<>

FCLOSE($ FD);

Return'SystemError”;

}

$ AddrSeek2=破滅(”解壓縮(‘L’,$ AddrSeek2.chr(0)));

FSEEK($ FD,$ AddrSeek2);

}否則{

FSEEK($ FD,-1,SEEK_CUR);

}

而(($焦炭=的fread($ FD,1))!=CHR(0))

$ useripAddr2=$炭;

$ AddrSeek=破滅(”解壓縮(‘L’,$ AddrSeek.chr(0)));

FSEEK($ FD,$ AddrSeek);

而(($焦炭=的fread($ FD,1))!=CHR(0))

$ useripAddr1=$炭;}否則{

FSEEK($ FD,-1,SEEK_CUR);

而(($焦炭=的fread($ FD,1))!=CHR(0))

$ useripAddr1=$炭;

$ useripFlag=的fread($ FD,1);

如果($ useripFlag==CHR(2)){

$ AddrSeek2=的fread($ FD,3);

如果(strlen的($ AddrSeek2)LT; 3){<>

FCLOSE($ FD);

Return'SystemError”;

}

$ AddrSeek2=破滅(”解壓縮(‘L’,$ AddrSeek2.chr(0)));

FSEEK($ FD,$ AddrSeek2);

}否則{

FSEEK($ FD,-1,SEEK_CUR);

}

而(($焦炭=的fread($ FD,1))!=CHR(0)){

$ useripAddr2=$炭;

}}

FCLOSE($ FD);

//返回與IP地址對應(yīng)的城市結(jié)果

如果(的preg_match(“/HTTP/I”,$ useripAddr2)){

$ useripAddr2=”;

}

$ useripaddr=” $ $ useripAddr1 useripAddr2” ;

$ useripaddr=preg_replace函數(shù)(“/CZ88.Net/is”,”,$ useripaddr);

$ useripaddr=preg_replace函數(shù)(“/^ S * /是”,”,$ useripaddr);

$ useripaddr=preg_replace函數(shù)(“/S * $ /是”,”,$ useripaddr);

如果(的preg_match(“/HTTP/I”,$ useripaddr)|| $ useripaddr==”){

$ useripaddr=”無數(shù)據(jù)”;

}

返回$ useripaddr;

}

?>

PHP根據(jù)IP地址實現(xiàn)城市切換或跳轉(zhuǎn)

此時,問題已經(jīng)非常簡單,可以使用簡單的js完成。

C節(jié)如下:

//根據(jù)IP地址跳轉(zhuǎn)到指定的頁面js來獲取城市

Varcity=””;

//所有城市都根據(jù)IP地址跳轉(zhuǎn)到指定頁面

如果(city.indexOf( “上海”)>=0){

Window.location.href=“http://shanghai.demo.com /”;

}

將第一段A段代碼和上面的C段代碼放在B段代碼的開頭和結(jié)尾,然后我們將以下代碼添加到需要跳轉(zhuǎn)的頁面中:

刷新頁面,是否達(dá)到了預(yù)期的效果?

網(wǎng)站建設(shè),小程序開發(fā),小程序制作,微信小程序開發(fā),公眾號開發(fā),微信公眾號開發(fā),網(wǎng)頁設(shè)計,網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計,微信小程序設(shè)計,小程序定制,微信小程序定制

相關(guān)案例查看更多

主站蜘蛛池模板: 成人无码AV一区二区三区 | 久久综合色一综合色88 | 一级毛片网站免费看 | 欧美精品乱码久久久久久按摩 | 亚洲中文字幕无线无码毛片 | GOGO亚洲肉体艺术 | 久久国产精品成人无码网站 | av在线亚洲男人的天堂 | 熟妇人妻久久中文字幕 | 国产a一级毛片爽爽影院无码 | 免费一级a毛片免费观看 | 国产免费久久精品99RE丫丫一 | 亚洲美女高清aⅴ视频免费 zzijzzij亚洲日本少妇jizjiz | 麻豆视频成人 | 国产999精品在线观看 | 最好看的中文2018 | 18禁真人抽搐一进一出在线 | 91精品综合久久久久久3u8 | 九月琪琪婷婷 | 亚洲色偷偷av男人的天堂 | 黄色福利网站在线观看 | 欧美日韩免费一区二区 | 成人做爽爽爽爽免费国产软件 | 成人免费在线视频网站 | 色中文字幕在线 | 美女隐私无遮挡免费视频软件 | 成年无码专区在线蜜芽TV | 中文字幕乱码一区av久久不卡 | 日韩人妻无码AⅤ中文字幕你懂的 | 爱爱精品 | 亚洲偷熟乱区亚洲香蕉av | 九色视频网站在线观看 | 亚洲欧洲美洲在线观看 | 亞洲成av無碼人在線觀看 | 大肉大捧一进一出好爽视频动漫 | 日本高清中文字幕免费一区二区 | 欧美一级一区二区 | 中文字幕免费在线观看 | 亚洲精品鲁一鲁一区二区三区 | 日本韩国视频一区二区 | 国产亚洲精品久久久久久无码 |