PHP如何通过LINUX命令获取服务端IP

最近遇到一个需求,要求在CLI下使用PHP获取服务端IP,大家知道通常我们借助Apache这样的Web服务器软件使用全局变量$_SERVER[‘SERVER_ADDR’]的方式获取服务端IP。但是在CLI下这样明显是无效的,这个时候我们往往会考虑借助LINUX命令来获取服务端IP。

现在推荐使用exec的方式来实现这个需求。

代码如下:

<?php
exec('/sbin/ifconfig |grep \'inet addr:\' |grep -v \'127.0.0.1\' |awk \'{print $2}\' |awk  -F : \'{print $2}\'',$arr);
var_dump($arr[0]);

执行后可能会遇到这样一个warning,大概是提示exec这个函数就系统禁用的,那么我们就需要找到php.ini修改下disabled_function的里的配置,删除掉exec。

再执行一次就能得到我们想得到的结果了。

扩展阅读:http://php.net/manual/en/function.exec.php

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据