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中preg_match函数正则匹配的字符串长度问题

项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来。 后来怀疑PHP 的preg_match有字符串长度限制,果然,发现“pcre.backtrack_limi...

让PHP开发者事半功倍的十大技巧小结

如果你使用一面大镜子作为冲浪板会发生什么?或许你会在较短的时间内征服海浪,但是你肯定从内心深处明白,这不是冲浪的正确选择。同样的道理也适用于PHP编程,尽管这样的类比听起来有一些古怪。我...

PHP简单实现“相关文章推荐”功能的方法

通常在做内容网站的时候,需要在每一篇文章中出现与该文章相关的文章列表。对于大多数人来说,使用的方法通常是:建立一个关键词列表,判断每篇文章包含有那些关键词,最后根据关键词找出与某篇文章最...

PHP正则表达式 /i, /is, /s, /isU等介绍

PHP正则表达式 /i, /is, /s, /isU等 都是些什么东西呢? i 不区分大小写 s 模式中的圆点元字符(.)匹配所有的字符,包括换行符 x 模式中的空白字符除了被转义的或在...

php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍

shuffle()定义和用法 shuffle() 函数把数组中的元素按随机顺序重新排列。 若成功,则返回 TRUE,否则返回 FALSE。 注释:本函数为数组中的单元赋予新的键名。这将删...