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 相关文章推荐
CodeIgniter php mvc框架 中国网站
May 26 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
tp5 实现列表数据根据状态排序
Oct 18 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 缓冲的免费实现方法
2006/10/09 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
jQuery 获取对象 定位子对象
2010/05/31 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
bootstrap表格分页实例讲解
2016/12/30 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
前台领班岗位职责
2013/12/04 职场文书
大学应届生的自我评价
2014/03/06 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
车间核算员岗位职责
2014/07/01 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书