注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

isblog主页

或许不一定要做得最多,但一定要做得最好! 能力就是一种财富,积累越多,就越体现你

 
 
 

日志

 
 

php获取本机真实IP地址  

2011-07-04 18:49:12|  分类: PHP学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
主要是通过操作系统查看IP命令获取信息,再通过分析这些信息截取出真实的IP地址。此方法如果不适合一些操作系统,可以自己使用该操作系统查看IP的命令获取信息,再对信息进行分析和截取出真实的IP地址。
注:如果安装了虚拟机时,IP会有多个,这个方法不能正确返回本机的真实IP。
/**
 * 我们有时通过php的一些方法只能获取的本机的IP为127.0.0.1,为解决此问题我们可以通过系统
 * 查看IP地址相关信息命令来获取数据分析出IP地址。此方法,适用于win200/xp、win7、Vista、linux系统。
 * 其它操作系统需要分析ip信息,并对此方法进行完善方可使用。
 * @return string ip地址
 */
function getLocalIP()
{
$preg="/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/";
//获取操作系统为win2000/xp、win7的本机IP真实地址
exec("ipconfig",$out,$stats);
if(!empty($out))
{
foreach($out AS $row)
{
if(strstr($row,"IP") && strstr($row,":") && !strstr($row,"IPv6"))
{
$tmpIp = explode(":", $row);
if(preg_match($preg,trim($tmpIp[1])))
{
return trim($tmpIp[1]);
}
}
}
}
//获取操作系统为linux类型的本机IP真实地址
exec("ifconfig",$out,$stats);
if(!empty($out))
{
if(isset($out[1]) && strstr($out[1],'addr:'))
{
$tmpArray = explode(":", $out[1]);
$tmpIp = explode(" ", $tmpArray[1]);
if(preg_match($preg,trim($tmpIp[0])))
{
return trim($tmpIp[0]);
}
}
}
return '127.0.0.1';
}
  评论这张
 
阅读(3655)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018