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 相关文章推荐
复杂检索数据并分页显示的处理方法
Oct 09 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
浅析PHP7新功能及语法变化总结
Jun 17 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
如何理解PHP核心特性命名空间
May 28 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
pw的一个放后门的方法分析
2007/10/08 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php中使用websocket详解
2016/09/23 PHP
JS控制表格隔行变色
2006/06/26 Javascript
addRule在firefox下的兼容写法
2006/11/30 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
Python 的 Socket 编程
2015/03/24 Python
如何在Python中编写并发程序
2016/02/27 Python
Python实现学生成绩管理系统
2020/04/05 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python集合是否可变总结
2019/06/20 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
详解Python多线程下的list
2020/07/03 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
优秀毕业生找工作自荐信
2014/06/23 职场文书
技术负责人岗位职责
2015/02/10 职场文书
清洁工岗位职责
2015/02/13 职场文书
继续教育个人总结
2015/03/03 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书