Phpを使用してマシンのIPアドレスを取得しようとしています。そのために私は次のようなコードを書いています:
<?php echo "<br />".$_SERVER['REMOTE_ADDR'];?>
しかし、このコードは機能していません。 「::1
"。実際のIPアドレスを取得する方法を教えてください。
::1
は実際のIPです。これは、ipv6ループバックアドレス(つまり、localhost)です。 ipv4を使用している場合、127.0.0.1
。
別のIPアドレスを取得する場合は、別のネットワークインターフェイスを介してサーバーに接続する必要があります。
Localhostを実行しようとしている場合、この答えは問題を解決します。ほんの少しの変更
Apache2/httpd.conf
すべての「聞く」単語を検索ex:
Listen 80
このようにします。
Listen 127.0.0.1:80
apacheを再起動するよりも
$_SERVER[REMOTE_ADDR]
Listen 127.0.0.1
あなたはこれで答えを見ることができます 詳細な回答リンク
ユーザーの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アドレスを取得します。
$ _SERVER ['REMOTE_ADDR']は、クライアントのIPアドレスです。
$ _SERVER ['SERVER_ADDR']はサーバーのIPアドレスです。
リファレンス: http://php.net/manual/en/reserved.variables.server.php