2012-05-15 12 views
5

Ho un modulo HTML. Quando il visitatore invia il modulo, viene invocato un metodo javascript. Questo metodo invia una richiesta AJAX al file php del mio server. Il mio problema è che ho bisogno di ottenere l'indirizzo IP del visitatore. Ma a causa della richiesta AJAX chiama il file php, $ _SERVER ['REMOTE_ADDR'] mi fornisce l'indirizzo del mio server. Come posso ottenere l'IP del visitatore, in questo caso? GrazieOttieni l'indirizzo IP del visitatore dopo aver inviato un modulo 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

se un browser emette una richiesta con js (ajax) o un caricamento normale della pagina - l'indirizzo IP che vedrete è lo stesso: quello del client (browser). – AD7six

risposta

22

$_SERVER['REMOTE_ADDR'] ti darà l'indirizzo IP del client. Ma dal momento che presumibilmente si utilizza la stessa macchina del server e del client si ottiene lo stesso IP normale. Dopo aver ospitato il sito Web in un server Web e averlo acceduto in remoto da un altro computer, verrà visualizzato l'indirizzo di tale macchina remota.

Quindi non c'è nient'altro che devi fare. Il tuo codice funziona già come previsto.

+0

Grazie. Ho perso quel punto :) – trante

0

la richiesta Ajax è ancora provenienti dal cliente, dovrebbe essere dare i clienti non IP server.

Problemi correlati