Получить IP-адрес из ifconfig с помощью PHP

У меня есть следующий код 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 .

Solutions Collecting From Web of "Получить IP-адрес из ifconfig с помощью PHP"

Он будет работать без двоеточия рядом с 'inet'

 grep 'inet ' 

Я бы написал скрипт bash для этого и выполнил скрипт bash. Версия CLI для PHP имеет доступ к вашей переменной среды 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; ?>