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中截取字符串支持utf-8
Jan 18 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
php使用百度ping服务代码实例
Jun 19 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 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.MVC的模板标签系统(三)
2006/09/05 PHP
php类常量的使用详解
2013/06/08 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
js自带函数备忘 数组
2006/12/29 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
layui中table表头样式修改方法
2018/08/15 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
什么是Web Service?
2012/07/25 面试题
计算机专业推荐信范文
2013/11/27 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
技术合作协议书范本
2014/04/18 职场文书
入党综合考察材料
2014/06/02 职场文书
审计班子对照检查材料
2014/08/27 职场文书
工作自我评价范文
2015/03/05 职场文书
家庭贫困证明
2015/06/16 职场文书
学前教育见习总结
2015/06/23 职场文书
干部考核工作总结2015
2015/07/24 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript