使用PHP从ifconfig获取IP地址

时间:2012-11-14 13:40:09

标签: php ip ifconfig

我有下一个PHP代码:

<?php
   $ip = shell_exec("/sbin/ifconfig  | grep 'inet:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'");
   echo $ip;
?>

当我从命令行($php5 ip.php)运行它时它工作正常,但是当我从浏览器运行它时它什么也没有显示(http://localhost/ip.php)。

顺便说一句,我正在尝试打印我的IP地址,但每当我使用$_SERVER['SERVER_ADDR'];时,我都会127.0.0.1

2 个答案:

答案 0 :(得分:4)

它将在'inet'

旁边没有冒号的情况下工作
grep 'inet '

答案 1 :(得分:1)

我会编写一个bash脚本来执行此操作并执行bash脚本。 CLI的CLI版本可以访问您的PATH环境变量,Apache模块可能无权访问该变量。

#!/bin/bash

/sbin/ifconfig | grep 'inet:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'

然后:

<?php

$ip = shell_exec('/path/to/shell/script');
print $ip;

?>