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中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP chr()函数讲解
Feb 11 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 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+js实现百度地图多点标注的方法
2016/11/30 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
js实现二级导航功能
2017/03/03 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
Python中asyncore的用法实例
2014/09/29 Python
解析Python中while true的使用
2015/10/13 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
运动会通讯稿300字
2014/02/02 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
《桥》教学反思
2014/04/09 职场文书
老师对学生的评语
2014/04/18 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
辅导员评语
2014/05/04 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
Python多线程 Queue 模块常见用法
2021/07/04 Python