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 编写的 25个游戏脚本
May 11 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
PHP 万年历实现代码
Oct 18 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 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单例模式与工厂模式详解
2017/08/29 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
一个用js实现控制台控件的代码
2007/09/04 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
前端微信支付js代码
2016/07/25 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
sublime text 3配置使用python操作方法
2017/06/11 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python画图常规设置方式
2020/03/05 Python
对python中各个response的使用说明
2020/03/28 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
清明节演讲稿
2014/05/27 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技