La version JSONP hébergée fonctionne comme un charme, mais il semble qu'elle dépasse ses ressources pendant la nuit la plupart des jours (heure de l'Est), j'ai donc dû créer ma propre version.
Voici comment j'ai procédé avec PHP :
<?php
header('content-type: application/json; charset=utf-8');
$data = json_encode($_SERVER['REMOTE_ADDR']);
echo $_GET['callback'] . '(' . $data . ');';
?>
Le Javascript est alors exactement le même que précédemment, mais il ne s'agit pas d'un tableau :
<script type="application/javascript">
function getip(ip){
alert('IP Address: ' + ip);
}
</script>
<script type="application/javascript" src="http://www.anotherdomain.com/file.php?callback=getip"> </script>
C'est aussi simple que cela !
Note complémentaire : Veillez à nettoyer votre $_GET si vous utilisez cette méthode dans un environnement public !
7 votes
De nombreuses réponses à cette question semblent recommander d'effectuer la résolution côté serveur. Selon le cas d'utilisation, cela peut s'avérer insuffisant. Par exemple, si le service que vous recherchez utilise GSLB, il peut renvoyer une IP différente en fonction de l'endroit où se trouve l'utilisateur ; par conséquent, la réponse que reçoit le code côté serveur sera très probablement différente de celle que le navigateur aurait reçue. Ceci étant dit, je n'ai pas encore de solution alternative pour ceux qui se soucient de cette différence.