Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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'];
}
like image 961
trante Avatar asked May 15 '12 21:05

trante


2 Answers

$_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.

like image 80
Darin Dimitrov Avatar answered Oct 15 '22 23:10

Darin Dimitrov


The ajax request is still originating from the client, it should be giving the clients IP not the servers.

like image 32
MiDri Avatar answered Oct 16 '22 00:10

MiDri