PHP跨平台获取服务器IP地址自定义函数分享


Posted in PHP onDecember 29, 2014

近期需要完善一个log机制,监控来自不同服务器的机器的脚本执行状况,特针对windows和Linux及web与命令行模式书写了一个函数来兼容。

写了如下一个function来,可以实现上面的需求:

function getServerAddr() {   

    //运行 web app   

    if (isset($_SERVER["SERVER_ADDR"])) {   

        return $_SERVER["SERVER_ADDR"];   

    } else { // Running CLI   

        if (stristr(PHP_OS, 'WIN')) {   

            //  针对windows服务器所执行的一种hacky方式    

            exec("ipconfig /all", $catch);   

            foreach ($catch as $line) {   

                $new_catch[] = iconv("gbk", "utf-8", $line) . "\n";   

            }   

            foreach ($new_catch as $new_line) {   

                if (preg_match(‘/IPv4 地址/', $new_line)) { //中文系统   

                    list($t, $ip) = explode(‘:', $new_line);   

                    $ip = trim($ip);   

                    preg_match(‘/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))/', $ip , $match);   

                    return $match[1];   

                }   

            }   

        } else {   

            $ifconfig = shell_exec(‘/sbin/ifconfig eth0′);   

            preg_match(‘/addr:([\d\.]+)/', $ifconfig, $match);   

            return $match[1];   

        }   

    }   

}   

  

$ip = getServerAddr();   

print $ip;
PHP 相关文章推荐
如何正确理解PHP的错误信息
Oct 09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP文件操作详解
Dec 30 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
PHP chr()函数讲解
Feb 11 PHP
简单的php购物车代码
Jun 05 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 #PHP
php读取远程gzip压缩网页的方法
Dec 29 #PHP
php导入大量数据到mysql性能优化技巧
Dec 29 #PHP
推荐几个开源的微信开发项目
Dec 28 #PHP
dedecms集成财付通支付接口
Dec 28 #PHP
VPS中使用LNMP安装WordPress教程
Dec 28 #PHP
php随机取mysql记录方法小结
Dec 27 #PHP
You might like
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
Python 高级专用类方法的实例详解
2017/09/11 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python requests模块cookie实例解析
2020/04/14 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
python如何写个俄罗斯方块
2020/11/06 Python
python中time tzset()函数实例用法
2021/02/18 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
学校学习雷锋活动总结
2014/07/03 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python