サーバーAとBが2つあります。サーバーBにphpスクリプトがあります。これで、クライアントがサーバーAにデータを送信し、サーバーAがサーバーBにデータを送信します。
リクエストが来たIPアドレス(つまりサーバーA)を取得したい。PHPを使用してそれを行うにはどうすればよいですか?
を使用する$_SERVER['REMOTE_ADDR']
と、クライアントのIPアドレスを取得します。を使用する$_SERVER['SERVER_ADDR']
と、null値が取得されます。
$_SERVER['SERVER_NAME']
$_SERVER['HTTP_HOST']
サーバーのDNS名を返す必要があります。IPの代わりにDNSを使用できる場合は、これらの変数の1つを試してみるべきだと思います。ただし、前述のように、$_SERVER['SERVER_ADDR']
データが入力されていない場合は、構成に問題がある可能性があります。
サーバー、IIS / Apache、OS、PHPのバージョンに関する情報を提供してください。
また、リクエストが入ってくるサーバーAでエコー/ロギング$_SERVER['SERVER_ADDR']
を試して、そこから値を取得できるかどうかを確認してください。サーバーBで読み取る$_SERVER['SERVER_ADDR']
と、サーバーBのIPが得られるはずです。サーバーAで値を取得した場合は、コードでサーバーBに転送する値(サーバーAからBへのトランザクションが発生する場所)。