1

次の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.

4

2 に答える 2

4

「inet」の横にコロンがなくても機能します

grep 'inet '
于 2012-11-14T13:45:48.110 に答える
1

それを行うための bash スクリプトを作成し、bash スクリプトを実行します。PHP の CLI バージョンは、Apache モジュールがアクセスできない可能性がある PATH 環境変数にアクセスできます。

#!/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;

?>
于 2012-11-14T13:46:44.177 に答える