怎么用php将ip地址转换成真实地址代码
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,本篇内容介绍了"怎么用php将ip地址转换成真实地址代码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年11月10日怎么用php将ip地址转换成真实地址代码
本篇内容介绍了"怎么用php将ip地址转换成真实地址代码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
php将ip地址转换成真实地址的方法:1、创建PHP示例文件;2、通过"define('WEB_ROOT',dirname(__FILE__));echo convertip('ip','full');"方法实现转换即可。

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
php将IP地址转换为真实地址的方法
方法使用示例如下
define('WEB_ROOT',dirname(__FILE__));echo convertip('111.63.244.69','full');func convertip
function convertip($ip,$integrity='simple'){ $return=''; $integrity=in_array($integrity,array('simple','full'))?$integrity:'simple'; if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$ip)){ $iparray=explode('.',$ip); if($iparray[0]==10||$iparray[0]==127||($iparray[0]==192&&$iparray[1]==168)||($iparray[0]==172&&($iparray[1]>=16&&$iparray[1]<=31))){ $return = '- LAN'; }elseif($iparray[0]>255||$iparray[1]>255||$iparray[2]>255||$iparray[3]>255){ $return='- Invalid IP Address'; }else{ $tinyipfile=WEB_ROOT.'./tinyipdata.dat';//IP==地址数据包精简版 $fullipfile=WEB_ROOT.'./wry.dat';//IP==地址数据包完整版 if($integrity=='simple'&&@file_exists($tinyipfile)){ $return=convertip_tiny($ip,$tinyipfile); }elseif(@file_exists($fullipfile)){ $return=convertip_full($ip,$fullipfile); } } } return $return;}func convertip_tiny
function convertip_tiny($ip,$ipdatafile){ static $fp=NULL,$offset=array(),$index=NULL; $ipdot=explode('.',$ip); $ip=pack('N',ip2long($ip)); $ipdot[0]=(int)$ipdot[0]; $ipdot[1]=(int)$ipdot[1]; if($fp===NULL&&$fp=@fopen($ipdatafile,'rb')){ $offset=@unpack('Nlen',@fread($fp,4)); $index=@fread($fp,$offset['len']-4); }elseif($fp==FALSE){ return '- Invalid IP data file'; } $length=$offset['len']-1028; $start =@unpack('Vlen',$index[$ipdot[0]*4].$index[$ipdot[0]*4+1].$index[$ipdot[0]*4+2].$index[$ipdot[0]*4+3]); for ($start=$start['len']*8+1024;$start<$length;$start+=8){ if ($index{$start}.$index{$start+1}.$index{$start+2}.$index{$start+3}>=$ip){ $index_offset=@unpack('Vlen',$index{$start+4}.$index{$start+5}.$index{$start+6}."\x0"); $index_length=@unpack('Clen',$index{$start+7}); break; } } @fseek($fp,$offset['len']+$index_offset['len']-1024); if($index_length['len']){ return '- '.@fread($fp,$index_length['len']); }else{ return '- Unknown'; }}func convertip_full
function convertip_full($ip,$ipdatafile){ if(!$fd=@fopen($ipdatafile,'rb')){ return '- Invalid IP data file'; } $ip=explode('.',$ip); $ipNum=$ip[0]*16777216+$ip[1]*65536+$ip[2]*256+$ip[3]; if(!($DataBegin=fread($fd,4))||!($DataEnd=fread($fd,4))) return; @$ipbegin=implode('',unpack('L',$DataBegin)); if($ipbegin<0) $ipbegin+=pow(2,32); @$ipend=implode('',unpack('L',$DataEnd)); if($ipend<0) $ipend+=pow(2,32); $ipAllNum=($ipend-$ipbegin)/7+1; $BeginNum=$ip2num=$ip1num=0; $ipAddr1=$ipAddr2=''; $EndNum=$ipAllNum; while($ip1num>$ipNum||$ip2num<$ipNum){ $Middle= intval(($EndNum+$BeginNum)/2); fseek($fd,$ipbegin+7*$Middle); $ipData1=fread($fd,4); if(strlen($ipData1)<4){ fclose($fd); return '- System Error'; } $ip1num=implode('',unpack('L',$ipData1)); if($ip1num<0) $ip1num+=pow(2,32); if($ip1num>$ipNum){ $EndNum=$Middle; continue; } $DataSeek=fread($fd,3); if(strlen($DataSeek)<3){ fclose($fd); return '- System Error'; } $DataSeek=implode('',unpack('L',$DataSeek.chr(0))); fseek($fd,$DataSeek); $ipData2=fread($fd,4); if(strlen($ipData2)<4){ fclose($fd); return '- System Error'; } $ip2num=implode('',unpack('L',$ipData2)); if($ip2num<0) $ip2num+=pow(2,32); if($ip2num<$ipNum){ if($Middle==$BeginNum){ fclose($fd); return '- Unknown'; } $BeginNum=$Middle; } } $ipFlag=fread($fd,1); if($ipFlag==chr(1)){ $ipSeek=fread($fd,3); if(strlen($ipSeek)<3){ 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)<3){ fclose($fd); return '- System Error'; } $ipFlag=fread($fd,1); if($ipFlag==chr(2)){ $AddrSeek2=fread($fd,3); if(strlen($AddrSeek2)<3){ 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)<3){ 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;}"怎么用php将ip地址转换成真实地址代码"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
地址
方法
代码
内容
数据
更多
知识
示例
实用
学有所成
接下来
困境
实际
情况
整版
文件
文章
案例
环境
电脑
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于根服务器
怎么进迪哥我的世界服务器
苏州办公系统软件开发哪家正规
服务器能安装360杀毒软件吗
湖北什么是软件开发标准
数据库构建的流程
计算机网络安全期刊论文
个性化网络技术服务价格合理
服务器硬盘数据恢复完整教程
提升服务器安全性有什么作用
软件开发人员配比
厦大数据库
宁波象象软件开发公司
服务器操作系统问题怎么解决呢
乐享好课互联网科技有限公司
网络安全方案英语作文
游戏服务器java
网络安全可视化开源
你以为的网络安全和实际的
龙稻18水稻国家数据库
三一重工软件开发面试流程
怎么做软件开发需要哪些学习
关于网络安全的广播稿
上海电商软件开发语言
奥迪车机系统软件开发
华为数据库和服务器业务
网络安全技术公司有哪些
数据库数据jsp页面回显
股票软件服务器
防控网络安全的例子和损失