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个人网站架设连环讲(三)
Oct 09 PHP
PHP编程之高级技巧——利用Mysql函数
Oct 09 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
php中使用接口实现工厂设计模式的代码
Jun 17 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
19个超实用的PHP代码片段
Mar 14 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
牡丹941资料
2021/03/01 无线电
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
PHP 加密与解密的斗争
2009/04/17 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
js实现微博发布小功能
2017/01/12 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
Python之多进程与多线程的使用
2021/02/23 Python
应届生体育教师自荐信
2013/10/03 职场文书
英文简历自荐信范文
2013/12/11 职场文书
大型营销活动计划书
2014/04/28 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
财务稽核岗位职责
2015/04/13 职场文书
学生犯错保证书
2015/05/09 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript