「$_SERVER」変数を参照して「Notice: Undefined index: SERVER_ADDR in ...」 エラーが発生する
PHP でサーバ-のアドレスを取得しようと、「$_SERVER["SERVER_ADDR"]」を参照したところ、以下のエラーが発生しました。
==================================================================
Notice: Undefined index: SERVER_ADDR in ...
==================================================================
前は参照できたのに?と思ってPHPのマニュアルを参照したところ、以下のような記述がありました。
==================================================================
On Windows IIS 7 you must use $_SERVER['LOCAL_ADDR'] rather than $_SERVER['SERVER_ADDR'] to get the server's IP address.
==================================================================
...8年前の記述らしいです。
PHP マニュアル $_SERVER
実行した環境は Windows の IIS 環境なので「SERVER_ADDR」ではなくて「LOCAL_ADDR」としないといけないようです。
echo $_SERVER["LOCAL_ADDR"];
どちらかしか入ってこないようなので開発環境と検証環境や実行環境が異なる場合はこのようにしておくといいかもしれません。
$addr = "";
if isset($_SERVER["SERVER_ADDR"]) {
$addr = $_SERVER["SERVER_ADDR"];
}
if isset($_SERVER["LOCAL_ADDR"]) {
$addr = $_SERVER["LOCAL_ADDR"];
}