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 - Html Transfer Code
Oct 09 PHP
用PHP制作静态网站的模板框架(四)
Oct 09 PHP
PHP文件操作实现代码分享
Sep 01 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
基于PHP微信红包的算法探讨
Jul 21 PHP
php封装的smartyBC类完整实例
Oct 19 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 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
destoon常用的安全设置概述
2014/06/21 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
取得传值的函数
2006/10/27 Javascript
jquery each()源代码
2011/02/14 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
Python  连接字符串(join %)
2008/09/06 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
十八届三中全会报告学习材料
2014/02/17 职场文书
便利店促销方案
2014/02/20 职场文书
五年级下册复习计划
2015/01/19 职场文书
经典爱情感言
2015/08/03 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP