简体   繁体   中英

Get IP address of visitor after an AJAX form submit

I have an HTML form. When visitor submits form, a javascript method is invoked. This method sends an AJAX request to my server's php file. My problem is i need to get the visitor's ip address. But because of AJAX request calls php file, $_SERVER['REMOTE_ADDR'] gives me my server's address. How can i get visitor's ip, in this case? Thank you

<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'];
}

$_SERVER['REMOTE_ADDR'] will give you the IP address of the client. But since presumably you are using the same machine as server and client you get the same IP which is normal. Once you host your website into a web server and access it remotely from a different machine you will get the address of that remote machine.

So there's nothing more you need to do. Your code already works as expected.

ajax请求仍然来自客户端,它应该给客户端IP而不是服务器。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM