У меня есть следующий код 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
.
Он будет работать без двоеточия рядом с '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; ?>