44

PHPを介してマシンのIPアドレスを取得しようとしています。そのために、次のようなコードを書いています。

<?php echo  "<br />".$_SERVER['REMOTE_ADDR'];?>

しかし、このコードは機能していません。「 」を返してい::1ます。実際の IP アドレスを取得する方法を教えてください。

4

6 に答える 6

80

::1実際のIPです。これは、ipv6ループバックアドレス(つまり、localhost)です。ipv4を使用している場合は、になります127.0.0.1

別のIPアドレスを取得する場合は、別のネットワークインターフェイスを介してサーバーに接続する必要があります。

于 2012-05-09T13:48:38.840 に答える
13

localhost を実行しようとしている場合、この回答で問題が解決します。わずかな変更のみ

apache2/httpd.conf 

すべての「聞く」単語を検索する例:

Listen 80

このようにします。

Listen 127.0.0.1:80

Apacheを再起動するより

$_SERVER[REMOTE_ADDR]

表示されます Listen 127.0.0.1

この詳細な回答リンクで回答を見ることができます

于 2016-01-21T13:13:26.490 に答える
8

ユーザーのIPアドレスを取得する場合は、次のようにすることができます。

<?php
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else{
      $ip=$_SERVER['REMOTE_ADDR'];
    }
?>

<?php echo  "<br />".$ip;?>

プロキシなどに関係なく、ユーザーの実際のIPアドレスを取得します。

于 2012-05-09T13:47:05.310 に答える
4

$_SERVER['REMOTE_ADDR']はクライアントのIPアドレスです。

$_SERVER['SERVER_ADDR']はサーバーのIPアドレスです。

参照: http: //php.net/manual/en/reserved.variables.server.php

于 2012-05-09T13:46:07.480 に答える
-2

の出力を見てくださいphpinfo()。アドレスがそのページにない場合、そのアドレスはPHPから直接利用できません。

于 2012-05-09T13:46:25.943 に答える