php获取本机真实IP地址实例代码

yipeiwu_com6年前PHP代码库

本文实例为大家分享了php获取本机真实IP地址实例代码,供大家参考。

主要是获取操作系统为win2000/xp、win7的本机IP真实地址,和获取操作系统为linux类型的本机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';
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

PHP数组游标实现对数组的各种操作详解

本文实例分析了PHP数组游标实现对数组的各种操作。分享给大家供大家参考,具体如下: 如何不用foreach实现对数组实现循环? 答:我们只需要模拟foreach就行了,数组在执行...

详解PHP中的Traits

PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。php的Traits和Go语言的组合功能类似,通过在类中使用use关键字声明要组...

修改Laravel5.3中的路由文件与路径

前言 大家可能没有注意到, 在 Laravel 4 以及更老版本中, 路由逻辑是性能上的一个瓶颈--特别是对于有很多路由定义的应用而言. 一个只有几百条路由定义的 Laravel 站点...

PHP获取数组最大值下标的方法

本文实例讲述了PHP获取数组最大值下标的方法。分享给大家供大家参考。具体实现方法如下: <?php $hots = array('8213'=> 0,'8212'...

PHP5中虚函数的实现方法分享

请看下面的代码: 复制代码 代码如下: <?php class A { public function x() { echo "A::x() was called.\n"; } p...