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音乐采集(部分代码)
Feb 14 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
详解PHP归并排序的实现
Oct 18 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
使用PHP开发留言板功能
Nov 19 PHP
YII2 全局异常处理深入讲解
Mar 24 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
杏林同学录(六)
2006/10/09 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
详解Python发送email的三种方式
2018/10/18 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
大型活动策划方案
2014/01/12 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
个园导游词
2015/02/04 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
Python代码实现双链表
2022/05/25 Python