Je veux obtenir des visiteurs du pays via leur IP ... En ce moment, j'utilise ceci ( http://api.hostip.info/country.php?ip= ......)
Voici mon code:
<?php
if (isset($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_adress = $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$real_ip_adress = $_SERVER['REMOTE_ADDR'];
}
$cip = $real_ip_adress;
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorlocation = file_get_contents($iptolocation);
?>
Eh bien, cela fonctionne correctement, mais le fait est que cela renvoie le code du pays comme US ou CA., et pas le nom complet du pays comme United States ou Canada.
Existe-t-il une bonne alternative à hostip.info?
Je sais que je peux simplement écrire du code qui transformera éventuellement ces deux lettres en nom de pays entier, mais je suis juste trop paresseux pour écrire un code qui contient tous les pays ...
PS: Pour une raison quelconque, je ne veux pas utiliser de fichier CSV prêt à l'emploi ou de code qui récupérera ces informations pour moi, quelque chose comme le code prêt à l'emploi ip2country et CSV.
la source
$real_ip_address
est toujours ignorée. Quoi qu'il en soit, rappelez-vous que l'X-Forwarded-For
en-tête HTTP peut être extrêmement facilement contrefait, et qu'il existe des procurations comme www.hidemyass.comhttps://www.iplocate.io/api/lookup/8.8.8.8
- Avertissement: je lance ce service.Réponses:
Essayez cette simple fonction PHP.
Comment utiliser:
Exemple 1: obtenir les détails de l'adresse IP du visiteur
Exemple 2: Obtenez des détails sur n'importe quelle adresse IP. [Prise en charge IPV4 et IPV6]
la source
file_get_contents()
. Vérifiez simplement votre fichier error_log. Solution: voyez ma réponse.Vous pouvez utiliser une API simple à partir de http://www.geoplugin.net/
Fonction utilisée
Production
Cela vous donne tellement d'options avec lesquelles vous pouvez jouer
Merci
:)
la source
J'ai essayé la réponse de Chandra mais ma configuration de serveur ne permet pas file_get_contents ()
PHP Warning: file_get_contents() URL file-access is disabled in the server configuration
J'ai modifié le code de Chandra pour qu'il fonctionne également pour des serveurs comme celui-ci en utilisant cURL:
J'espère que cela pourra aider ;-)
la source
En fait, vous pouvez appeler http://api.hostip.info/?ip=123.125.114.144 pour obtenir les informations, qui sont présentées en XML.
la source
Utilisez MaxMind GeoIP (ou GeoIPLite si vous n'êtes pas prêt à payer).
la source
Utilisez les services suivants
1) http://api.hostip.info/get_html.php?ip=12.215.42.19
2)
3) http://ipinfodb.com/ip_location_api.php
la source
Découvrez php-ip-2-country sur code.google. La base de données qu'ils fournissent est mise à jour quotidiennement, il n'est donc pas nécessaire de se connecter à un serveur externe pour vérifier si vous hébergez votre propre serveur SQL. Donc, en utilisant le code, il vous suffirait de taper:
Exemple de code (à partir de la ressource)
Production
la source
Nous pouvons utiliser geobytes.com pour obtenir l'emplacement en utilisant l'adresse IP de l'utilisateur
il renverra des données comme celle-ci
Fonction pour obtenir l'IP de l'utilisateur
la source
Essayez ce simple code d'une ligne, vous obtiendrez le pays et la ville des visiteurs à partir de leur adresse IP distante.
la source
Vous pouvez utiliser un service Web de http://ip-api.com
dans votre code php, procédez comme suit:
la requête contient de nombreuses autres informations:
la source
Il existe une version de fichier plat bien entretenue de la base de données ip-> country maintenue par la communauté Perl au CPAN
L'accès à ces fichiers ne nécessite pas de serveur de données et les données elles-mêmes représentent environ 515 Ko
Higemaru a écrit un wrapper PHP pour parler à ces données: php-ip-country-fast
la source
De nombreuses façons de le faire ...
Solution n ° 1:
Un service tiers que vous pourriez utiliser est http://ipinfodb.com . Ils fournissent le nom d'hôte, la géolocalisation et des informations supplémentaires.
Inscrivez-vous pour une clé API ici: http://ipinfodb.com/register.php . Cela vous permettra de récupérer les résultats de leur serveur, sans cela cela ne fonctionnera pas.
Copiez et collez le code PHP suivant:
Inconvénient:
Citant de leur site Web:
Solution n ° 2:
Cette fonction renvoie le nom du pays à l'aide du service http://www.netip.de/ .
Production:
la source
Mon service ipdata.co fournit le nom du pays en 5 langues! Ainsi que l'organisation, la devise, le fuseau horaire, le code d'appel, l'indicateur, les données de l'opérateur mobile, les données du proxy et les données d'état du nœud de sortie Tor à partir de n'importe quelle adresse IPv4 ou IPv6.
Il est également extrêmement évolutif avec 10 régions du monde capables chacune de gérer> 10 000 requêtes par seconde!
Les options incluent; Anglais (en), allemand (de), japonais (ja), français (fr) et chinois simplifié (za-CH)
la source
Je ne sais pas s'il s'agit d'un nouveau service mais maintenant (2016) le moyen le plus simple en php est d'utiliser le service web php de geoplugin: http://www.geoplugin.net/php.gp :
Utilisation de base:
Ils fournissent également une classe prête à l'emploi: http://www.geoplugin.com/_media/webservices/geoplugin.class.php.tgz?id=webservices%3Aphp&cache=cache
la source
else
aprèselse
qui provoque une erreur. Qu'avez-vous essayé d'empêcher? REMOTE_ADDR devrait être disponible tout le temps?$_SERVER
: "Il n'y a aucune garantie que chaque serveur Web fournira l'un de ceux-ci; les serveurs peuvent en omettre certains, ou en fournir d'autres non répertoriés ici."J'utilise l'
ipinfodb.com
api et j'obtiens exactement ce que vous cherchez.C'est entièrement gratuit, il vous suffit de vous inscrire auprès d'eux pour obtenir votre clé api. Vous pouvez inclure leur classe php en téléchargeant à partir de leur site Web ou vous pouvez utiliser le format url pour récupérer des informations.
Voici ce que je fais:
J'ai inclus leur classe php dans mon script et en utilisant le code ci-dessous:
C'est tout.
la source
vous pouvez utiliser http://ipinfo.io/ pour obtenir les détails de l'adresse IP Son facile à utiliser.
la source
Remplacez
127.0.0.1
par les visiteurs IpAddress.Les instructions d'installation sont ici , et lisez ceci pour savoir comment obtenir la ville, l'état, le pays, la longitude, la latitude, etc.
la source
Une ligne avec une adresse IP pour l' API du pays
Exemple :
https://ipapi.co/country_name/ - votre pays
https://ipapi.co/8.8.8.8/country_name/ - pays pour IP 8.8.8.8
la source
J'ai une réponse courte que j'ai utilisée dans un projet. Dans ma réponse, je considère que vous avez une adresse IP de visiteur.
la source
Je sais que c'est vieux, mais j'ai essayé quelques autres solutions ici et elles semblent obsolètes ou retournent simplement null. Voilà donc comment je l'ai fait.
Utilisation
http://www.geoplugin.net/json.gp?ip=
qui ne nécessite aucun type d'inscription ou de paiement pour le service.Et si vous voulez des informations supplémentaires à ce sujet, voici un retour complet de Json:
la source
J'ai écrit un cours basé sur la réponse "Chandra Nakka". J'espère que cela peut aider les gens à sauvegarder les informations de la géoplugine dans une session afin que la charge soit beaucoup plus rapide lors du rappel des informations. Il enregistre également les valeurs dans un tableau privé, donc le rappel dans le même code est le plus rapide possible.
Répondre à la question «op» avec cette classe que vous pouvez appeler
Et les autres propriétés disponibles sont:
De retour
la source
le API User Country a exactement ce dont vous avez besoin. Voici un exemple de code utilisant file_get_contents () comme vous le faites à l'origine:
la source
Vous pouvez obtenir des visiteurs par pays et par ville à l'aide de l'ipstack geo API. Vous devez obtenir votre propre API ipstack, puis utiliser le code ci-dessous:
Source: Obtenez des visiteurs pays et ville en PHP en utilisant l'API ipstack
la source
Ceci est juste une note de sécurité sur la fonctionnalité de la
get_client_ip()
plupart des réponses qui ont été incluses ici dans la fonction principale deget_geo_info_for_this_ip()
.Ne vous fiez pas trop aux données IP dans les en-têtes de demande, comme
Client-IP
ouX-Forwarded-For
parce qu'elles peuvent être usurpées très facilement, mais vous devez vous fier à l'IP source de la connexion TCP qui est réellement établie entre notre serveur et le client$_SERVER['REMOTE_ADDR']
comme il peut '' ne pas être usurpéIl est correct d'obtenir le pays de l'adresse IP usurpée, mais gardez à l'esprit que l'utilisation de cette adresse IP dans n'importe quel modèle de sécurité (par exemple: interdire l'adresse IP qui envoie des demandes fréquentes) détruira l'ensemble du modèle de sécurité. À mon humble avis, je préfère utiliser l'IP client réel, même s'il s'agit de l'IP du serveur proxy.
la source
Essayer
la source
Vous pouvez utiliser mon service: https://SmartIP.io , qui fournit les noms de pays complets et les noms de villes de n'importe quelle adresse IP. Nous exposons également les fuseaux horaires, les devises, la détection de proxy, la détection de nœuds TOR et la détection de crypto.
Il vous suffit de vous inscrire et d'obtenir une clé API gratuite qui permet de 250 000 demandes par mois.
En utilisant la bibliothèque PHP officielle, l'appel API devient:
Consultez la documentation de l'API pour plus d'informations: https://smartip.io/docs
la source
À partir de 2019, la base de données de pays MaxMind peut être utilisée comme suit:
Source: https://github.com/maxmind/MaxMind-DB-Reader-php
la source
Serait-ce acceptable? PHP pur
réf: https://www.php.net/manual/en/function.geoip-country-code-by-name.php
la source