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
一个简单的自动发送邮件系统(一)
Oct 09 PHP
php抓取https的内容的代码
Apr 06 PHP
php的字符串用法小结
Jun 08 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP访问Google Search API的方法
Mar 05 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
Laravel 添加多语言提示信息的方法
Sep 29 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
php的curl实现get和post的代码
2008/08/23 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
js+html获取系统当前时间
2017/11/10 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
javascript如何实现create方法
2019/11/04 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Python编程中的异常处理教程
2015/08/21 Python
简单实现python数独游戏
2018/03/30 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
甜品店的创业计划书范文
2014/01/02 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
公务员个人年终总结
2015/02/12 职场文书
感谢信
2019/04/11 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
导游词之临安白水涧
2019/11/05 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python