Obtenir l'adresse IP du client via un service Web tiers
Je voudrais lire mon adresse ip à partir de la page suivante(http://l2.io/ip ou autres) à l'aide de javascript pour le sauver dans ma variable "myIp".
function getMyIP() {
var myIp;
...
return myIp;
}
Comment pouvez-vous faire?
source d'informationauteur Milton90
Vous devez vous connecter pour publier un commentaire.
La vérification de votre site liévous pouvez inclure une balise de script, le passage d'un
?var=desiredVarName
paramètre qui sera défini comme une variable globale contenant l'adresse IP:Démo
Je crois que je n'ai pas à dire que cela peut être facilement usurpée (au moyen de l'utilisation de proxys ou falsifiés en-têtes de requête), mais il est intéressant de noter, en tout cas.
Prise en charge de HTTPS
Dans le cas où votre page est servi à l'aide de la
https
protocole, la plupart des navigateurs de bloquer le contenu dans la même page à l'aide de lahttp
protocole (qui inclut des scripts et images), de sorte que les options sont plutôt limitées. Si vous avez < 5k hits/jour, le Le Smart IP API peut être utilisé. Par exemple:Démo
Edit: Apparemment, ce
https
service du certificat a expiré de sorte que l'utilisateur aurait à ajouter une exception manuellement. Ouvrir son API directement pour vérifier le certificat de l'état: https://smart-ip.net/geoip-jsonAvec la logique
La plus résistante et facile, dans le cas où vous avez serveur d'arrière-plan de la logique, serait tout simplement de la sortie du demandeur IP à l'intérieur d'un
<script>
tag, de cette façon, vous n'avez pas besoin de compter sur des ressources externes. Par exemple:PHP:
Il y a aussi plus robuste PHP (solution de comptabilité pour les en-têtes qui sont parfois par des fondés de pouvoir) dans ce liées répondre.
C#:
Cela fonctionne https trop
Plus fiable du point de terminaison REST serait http://freegeoip.net/json/
Renvoie l'adresse ip ainsi que la géo-localisation. A aussi de la croix-domaine de demandes de permis (Access-Control-Allow-Origin: *) si vous n'avez pas de code autour de JSONP.
Si vous faites face à un problème de la SCRO, vous pouvez utiliser https://api.ipify.org/.
Je suis d'accord que l'utilisation synchrone HTTP appel n'est pas une bonne idée. Vous pouvez utiliser asynchrone appel ajax alors.
Cette récupère les informations du client.
Bien, si dans le code HTML de l'importation d'un script...
Vous pouvez ensuite utiliser la variable userIP (ce qui serait l'adresse IP du visiteur) n'importe où sur la page.
Pour rediriger:
<script>if (userIP == "555.555.555.55") {window.location.replace("http://192.168.1.3/flex-start/examples/navbar-fixed-top/");}</script>
Ou pour l'afficher sur la page:
document.write (userIP);
DISCLAIMER: je suis l'auteur du script je l'ai dit à l'importation. Le script est livré avec l'IP à l'aide de PHP. Le code source du script ci-dessous.
<?php
//Gets the IP address
$ip = getenv("REMOTE_ADDR") ;
Echo "var userIP = '" . $ip . "';";
?>