2012-05-15 15 views
5

Tengo un formulario HTML. Cuando el visitante envía el formulario, se invoca un método javascript. Este método envía una solicitud AJAX al archivo php de mi servidor. Mi problema es que necesito obtener la dirección IP del visitante. Pero debido a la solicitud AJAX llama al archivo php, $ _SERVER ['REMOTE_ADDR'] me da la dirección de mi servidor. ¿Cómo puedo obtener la IP del visitante, en este caso? GraciasObtener la dirección IP del visitante después de enviar un formulario AJAX

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

si un navegador emite una solicitud con js (ajax) o una carga de página normal - la dirección IP que verá es la misma: la del cliente (navegador). – AD7six

Respuesta

22

$_SERVER['REMOTE_ADDR'] le dará la dirección IP del cliente. Pero dado que presumiblemente está utilizando la misma máquina que el servidor y el cliente, obtiene la misma IP que es normal. Una vez que hospede su sitio web en un servidor web y acceda a él de forma remota desde una máquina diferente, obtendrá la dirección de esa máquina remota.

Así que no hay nada más que deba hacer. Tu código ya funciona como se esperaba.

+0

Gracias. Me perdí ese punto :) – trante

0

La solicitud Ajax todavía se origina desde el cliente, se debe dar a los clientes no los servidores IP.

Cuestiones relacionadas