php实现根据ip跳转的方法

  介绍

这篇文章将为大家详细讲解有关php实现根据ip跳转的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

php实现根据ip跳转的方法:首先返回当前ip的城市字符串,然后检查ip地址,接着打开ip数据文件,并分解ip进行运算,最后使用二分查找法从索引记录中搜索匹配的ip记录,并进行相应的替换操作即可。

 php实现根据ip跳转的方法

<强> php代码根据ip判断城市并跳转

代码:

& lt; php ?//返回当前IP的城市字符串   函数convertip (ip) {//IP数据文件路径   $ dat_path=& # 39; QQWry.Dat& # 39;;//检查IP地址   如果(! preg_match (“/^ (\ d {1,2} | 1 \ \ d | 2 (0 - 4) \ d | 25 (0 - 5)) \。(\ d {1,2} | 1 \ \ d | 2 (0 - 4) \ d | 25 (0 - 5)) \。(\ d {1,2} | 1 \ \ d | 2 (0 - 4) \ d | 25 (0 - 5)) \。(\ d {1,2} | 1 \ \ d | 2 (0 - 4) \ d | 25(0 - 5))/懊涝?美元ip)) {   返回& # 39;IP地址错误# 39;;   }//打开IP数据文件   如果(!(fd=@fopen美元dat_path, & # 39; rb # 39;)) {   返回& # 39;IP日期文件不存在或访问否认# 39;;   }//分解IP进行运算,得出整形数   $ ip=爆炸(& # 39;强生# 39;,美元ip);   美元ipNum ip [0]=$ * 16777216 + $ ip [1] * 65536 + $ ip [2] * 256 + $ ip [3];//获取IP数据索引开始和结束位置   $ DataBegin=从文件中读(fd美元,4);   $ DataEnd=从文件中读(fd美元,4);   $ ipbegin=内爆(& # 39;& # 39;,解压缩(& # 39;l # 39;, DataBegin美元));   if ($ ipbegin & lt;0)美元ipbegin +=战俘(32);   $ ipend=内爆(& # 39;& # 39;,解压缩(& # 39;l # 39;, DataEnd美元));   if ($ ipend & lt;0)美元ipend +=战俘(32);   $ ipAllNum=(ipend - ipbegin美元)/7 + 1;   美元BeginNum=0;   EndNum=ipAllNum美元;//使用二分查找法从索引记录中搜索匹配的IP记录   而(ip1num> ipNum美元| | $ ip2numphp实现根据ip跳转的方法