10

HTMLフォームがあります。訪問者がフォームを送信すると、javascript メソッドが呼び出されます。このメソッドは、サーバーの php ファイルに AJAX リクエストを送信します。私の問題は、訪問者の IP アドレスを取得する必要があることです。しかし、AJAX リクエストが php ファイルを呼び出すため、$_SERVER['REMOTE_ADDR']はサーバーのアドレスを教えてくれます。この場合、どうすれば訪問者の IP を取得できますか? ありがとうございました

<form onsubmit="sendData(); return false;">
    // some data here
</form>

function sendData(){
    // do some work, get variables
    $.ajax({
        url:"/mypage.php",
        type:"GET",
        data: { name: e },
        success : function(data) {
           // do some work
        },
        error: function (xhr, ajaxOptions, thrownError) {
        }
    })
}

// in mypage.php
public function useData() {
        $name=$_GET["name"];
        $ip = $_SERVER['REMOTE_ADDR'];
}
4

2 に答える 2

28

$_SERVER['REMOTE_ADDR']クライアントの IP アドレスが表示されます。しかし、おそらくサーバークライアントとして同じマシンを使用しているため、通常は同じ IP を取得します。Web サイトを Web サーバーにホストし、別のマシンからリモートでアクセスすると、そのリモート マシンのアドレスを取得できます。

したがって、これ以上何もする必要はありません。あなたのコードはすでに期待どおりに機能しています。

于 2012-05-15T21:43:03.020 に答える
1

ajax リクエストはまだクライアントから発信されています。サーバーではなくクライアントに IP を与える必要があります。

于 2012-05-15T21:42:29.650 に答える