//===================================

//

// 功能:IP地址获取真实地址函数

// 参数:$ip - IP地址

//

//===================================

function convertip($ip) {

$dat_path = '../QQWry.Dat';

if(!preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/", $ip)) {

return 'IP Address Error';

}

if(!$fd = @fopen($dat_path, 'rb')){

return 'IP date file not exists or access denied';

}

$ip = explode('.', $ip);

$ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

$DataBegin = fread($fd, 4);

$DataEnd = fread($fd, 4);

$ipbegin = implode('', unpack('L', $DataBegin));

if($ipbegin

$ipend = implode('', unpack('L', $DataEnd));

if($ipend

$ipAllNum = ($ipend - $ipbegin) / 7 + 1;

$BeginNum = 0;

$EndNum = $ipAllNum;

while($ip1num>$ipNum || $ip2num

$Middle= intval(($EndNum + $BeginNum) / 2);

fseek($fd, $ipbegin + 7 * $Middle);

$ipData1 = fread($fd, 4);

if(strlen($ipData1)

fclose($fd);

return 'System Error';

}

$ip1num = implode('', unpack('L', $ipData1));

if($ip1num

if($ip1num > $ipNum) {

$EndNum = $Middle;

continue;

}

$DataSeek = fread($fd, 3);

if(strlen($DataSeek)

fclose($fd);

return 'System Error';

}

$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));

fseek($fd, $DataSeek);

$ipData2 = fread($fd, 4);

if(strlen($ipData2)

fclose($fd);

return 'System Error';

}

$ip2num = implode('', unpack('L', $ipData2));

if($ip2num

if($ip2num

if($Middle == $BeginNum) {

fclose($fd);

return 'Unknown';

}

$BeginNum = $Middle;

}

}

$ipFlag = fread($fd, 1);

if($ipFlag == chr(1)) {

$ipSeek = fread($fd, 3);

if(strlen($ipSeek)

fclose($fd);

return 'System Error';

}

$ipSeek = implode('', unpack('L', $ipSeek.chr(0)));

fseek($fd, $ipSeek);

$ipFlag = fread($fd, 1);

}

if($ipFlag == chr(2)) {

$AddrSeek = fread($fd, 3);

if(strlen($AddrSeek)

fclose($fd);

return 'System Error';

}

$ipFlag = fread($fd, 1);

if($ipFlag == chr(2)) {

$AddrSeek2 = fread($fd, 3);

if(strlen($AddrSeek2)

fclose($fd);

return 'System Error';

}

$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));

fseek($fd, $AddrSeek2);

} else {

fseek($fd, -1, SEEK_CUR);

}

while(($char = fread($fd, 1)) != chr(0))

$ipAddr2 .= $char;

$AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));

fseek($fd, $AddrSeek);

while(($char = fread($fd, 1)) != chr(0))

$ipAddr1 .= $char;

} else {

fseek($fd, -1, SEEK_CUR);

while(($char = fread($fd, 1)) != chr(0))

$ipAddr1 .= $char;

$ipFlag = fread($fd, 1);

if($ipFlag == chr(2)) {

$AddrSeek2 = fread($fd, 3);

if(strlen($AddrSeek2)

fclose($fd);

return 'System Error';

}

$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));

fseek($fd, $AddrSeek2);

} else {

fseek($fd, -1, SEEK_CUR);

}

while(($char = fread($fd, 1)) != chr(0)){

$ipAddr2 .= $char;

}

}

fclose($fd);

if(preg_match('/http/i', $ipAddr2)) {

$ipAddr2 = '';

}

$ipaddr = "$ipAddr1 $ipAddr2";

$ipaddr = preg_replace('/CZ88.NET/is', '', $ipaddr);

$ipaddr = preg_replace('/^s*/is', '', $ipaddr);

$ipaddr = preg_replace('/s*$/is', '', $ipaddr);

if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {

$ipaddr = 'Unknown';

}

return $ipaddr;

}

?>

纯真ip php,PHP利用纯真数据库获取访客IP物理地址相关推荐

  1. php获取访客精确ip,PHP获取访客IP、地区位置等技巧分享

    本文主要和大家介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 示例代码& ...

  2. php如何获取访问者地理位置,PHP获取访客IP和地理位置等信息的类

    这是一个能够获取到用户访问信息的PHP类,包括:ip地址.地理信息.操作系统.语言.浏览器和isp等等.获取地理位置和ISP信息是请求的Baidu隐藏接口. 代码如下: 1.[代码][PHP]代码 / ...

  3. PHP获取访客ip、系统、浏览器等信息[转]

    1.获取访客操作系统信息 <?php function GetOs() { if (!empty($_SERVER['HTTP_USER_AGENT'])) { $OS = $_SERVER[' ...

  4. html页面跳转IP,JS获取访客IP进行自动跳转

    因业务需要进行地区判断跳转指定站点,下面是我个人实现的办法,分享给大家,仅供参考,切勿做非法用途 第一步,获取IP并判断归属地 直接使用搜狐的IP库查询接口 返回的地址是: var returnCit ...

  5. vue中使用接口(搜狐接口)获取访客IP地址

    花了1天时间踩坑,终于探索出来了最方便的解决方式.. 网上大部分大厂的获取ip的方式都已不可用,只有搜狐接口还有一些小网站搞出来的接口能用.这里我使用的是搜狐获取IP的接口. 搜狐接口返回的是一个js ...

  6. html获取访客ip,jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)

    本文实例讲述了jQuery获取访问者IP地址的方法.分享给大家供大家参考,具体如下: $(document).ready(function(){ //通过调用新浪IP地址库接口查询用户当前所在国家.省 ...

  7. Java获取访客IP地址

    原文地址:https://dsx2016.com/?p=226 ➢ 获取IP地址 在开发工作中,我们常常需要获取客户端的IP ➢ nginx配置 为了拿到真实的IP地址,避免代理等错误源,需要在ngi ...

  8. php REMOTEADDR之获取访客IP的代码

    $_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建.不能保证每个服务器都 ...

  9. Wordpress用文件记录访客 IP和访问量

    1.记录访问量,显示访客IP [php原码] <?php/*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt";$f ...

最新文章

  1. Plant Com:中科院遗传发育所白洋组开发定量检测宿主微生物组的HA-QAP技术(王二涛点评)...
  2. 前端小纠结--集成gitflow和standard-version使用
  3. python一行输入多个值用空格隔开_2020-09-22-Python-函数嵌套、filter()函数、一行输入多个整数(空格分隔)、多维列表的输入...
  4. @ConfigurationProperties与@Value注解
  5. MySQL高级 orderby 优化
  6. [Java基础]反射练习之越过泛型检查,运行配置文件制定内容
  7. stm32定时2通道3映射_stm32学习笔记之问题总结
  8. Iplat62---CRUD
  9. C# File流操作
  10. 相机内参_相机标定(一):机器人手眼标定
  11. java代码转python代码_如何实现Java代码转换成python代码
  12. java kernel32.dll,关于kernel32.sys病毒的问题
  13. 最新!谷歌浏览器去除CSDN广告插件
  14. 【Excel2019(六):数据透视表】【创建数据透视表+更改数据透视表汇总方式+数据透视表中的组合+汇总多列数据+创建计算字段+生成多张工作表】
  15. poj3580:SuperMemo(块状链表/Splay)
  16. 我熬夜开发了一款简约实用、支持多平台的Markdown在线编辑器(开源)
  17. Python基础+进阶(万字总结,基础案例+执行结果)
  18. 《西游记》取经路线图|思维导图简单又漂亮
  19. 计算机组装与维修专用周报告,《计算机组装与维护专用周》实习报告.doc
  20. UI自动化测试工具Airtest

热门文章

  1. 荣盛发展,或正在步华夏幸福后尘
  2. Spooling技术简单熟悉
  3. 解析某个94aw演示备忘
  4. 推荐5款Windows桌面效率工具
  5. 《集成电路先进光刻技术与版图设计优化》课程分享之二:浸没式光刻工艺缺陷种类、特征及自识别方法
  6. mysql中存储指纹数据_业务数据指纹(MD5)的使用和存储注意
  7. 计算机一级word的知识点,计算机一级word操作知识点
  8. Qt播放HTML网页视频
  9. FPGA Verilog HDL 系列实例--------双向移位寄存器
  10. HEXO+Github博客 更换新域名详解