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 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
php 移除数组重复元素的一点说明
Nov 27 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
理解PHP中的stdClass类
Apr 18 PHP
9个比较实用的php代码片段
Mar 15 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
PHP环形链表实现方法示例
Sep 15 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
PHP+redis实现的购物车单例类示例
Feb 02 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
laravel中的fillable和guarded属性详解
Oct 23 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入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
Python中的包和模块实例
2014/11/22 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
社会实践先进工作者事迹材料
2014/05/06 职场文书
用电申请报告范文
2015/05/18 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
mybatis 获取更新记录的id
2022/05/20 Java/Android
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python