Catégories
Astuces et Design

Utilisez les données de géolocalisation d'ipdata pour protéger et personnaliser votre site – SitePoint

Cet article a été créé en partenariat avec ipdata. Merci de soutenir les partenaires qui rendent SitePoint possible.

Les sites Web modernes sont de plus en plus efficaces pour personnaliser le contenu en fonction de l'emplacement de leurs visiteurs. Ils peuvent rediriger les utilisateurs vers une page dans leur propre langue, afficher les prix dans la devise locale, pré-remplir des formulaires Web avec des informations de localisation et afficher l'heure et la date actuelles pour le fuseau horaire correct.

ipdata est une API à faible latence qui fournit aux propriétaires de sites Web une grande variété d'informations sur leurs visiteurs en fonction de l'adresse IP (IPv4 et IPv6). Considérez-le comme une API de géolocalisation IP et de renseignement sur les menaces.

En utilisant l'adresse IP d'un visiteur, vous pouvez connaître son continent, pays, région, ville, latitude et longitude, organisation ou FAI et fuseau horaire. L'API détecte également les utilisateurs Proxy et Tor, ainsi que les spammeurs connus et les mauvais bots. Le blocage de ces risques protégera votre site Web et réduira le besoin de stratégies de sécurité comme CAPTCHA.

Voyons spécifiquement comment ipdata peut vous aider et comment les implémenter sur votre propre site Web.

Rediriger les visiteurs et localiser le contenu

Lorsque vous visitez le site Web ipdata, vous voyez immédiatement de quoi le service est capable. Tout ce qui peut être appris à partir de votre propre adresse IP s'affiche.

ipdata

Ces données comprennent:

  • Que vous soyez dans l'UE,
  • Ta ville,
  • État ou région (et code de région),
  • Pays (et code pays),
  • Continent (et code continent),
  • Latitude et longitude,
  • Code postal ou zip,
  • Indicatif d'appel du pays,
  • Emoji du drapeau de votre pays,
  • Les informations ASN et opérateur de votre fournisseur de services,
  • Langues,
  • Devise (nom, code, symbole, pluriel),
  • Fuseau horaire (nom et abréviation, décalage, heure d'été, heure actuelle),
  • Informations sur les menaces (Tor, Proxy, anonyme, attaquant connu, agresseur connu, menace, bogon).

Vous pouvez appeler l'API ipdata à chaque demande de page pour géolocaliser vos visiteurs et localiser leur contenu. Voici quelques idées de ce que vous pouvez réaliser:

  • Restreindre ou bloquer l'accès à votre contenu à des pays ou continents spécifiques,
  • Redirigez les utilisateurs vers des sites ou des pages spécifiques au pays (ou à la langue),
  • Pré-remplissez vos formulaires Web avec leurs données de localisation,
  • Montrez à vos visiteurs leur heure locale et la météo,
  • Affichez les événements à proximité de vos visiteurs ou les vols disponibles dans leur région,
  • Diffuser des annonces ciblées en fonction de l'emplacement,
  • Faire respecter le RGPD,
  • Convertissez automatiquement les prix de votre boutique en ligne dans leur devise locale, en utilisant le symbole de devise correct,
  • Analysez plus précisément d'où vient votre trafic.

Vous pouvez obtenir l'adresse IP d'un client en utilisant JavaScript, mais c'est un peu de travail. Utilisez plutôt l'API ipdata. Il est ultra-rapide et fiable sur tous les navigateurs. Voici le code:

    $.get("https://api.ipdata.co?api-key=test", function(response) {
        console.log(response.ip);
    }, "jsonp");

Une fois que vous avez l'adresse API d'un visiteur, la documentation d'ipdata vous montre comment obtenir son emplacement dans 26 langues différentes. Vous trouverez également des didacticiels détaillés sur la façon de coder pour une variété de cas d'utilisation. Voici quelques exemples.

À bloquer (ou autoriser) les utilisateurs par pays, recherchez les codes de pays ISO 3166 ALPHA-2 pour ceux que vous souhaitez mettre sur liste noire ou sur liste blanche. Suivez ensuite cet exemple de code pour savoir comment les mettre sur liste noire ou sur liste blanche.

    // List of countries we want to block
    // To see this in action add your country code to the array
    var blacklist = ('US', 'CA', 'UK', 'IN')

    // Getting the country code from the user's IP
    $.get("https://api.ipdata.co?api-key=test", function (response) {

      // Checking if the user's country code is in the blacklist
      // You could inverse the logic here to use a whitelist instead
      if (blacklist.includes(response.country_code)) {
        alert('This content is not available at your location.');
      } else {
        alert("You're allowed to see this!")
      }
    }, "jsonp");

Rediriger les utilisateurs par pays est utile si vous avez des boutiques en ligne spécifiques à un pays, ou si vous avez une page séparée avec du contenu dans leur langue ou avec des coordonnées spécifiques à un pays.

Voici un exemple de redirection de vos visiteurs situés en Allemagne et en Australie. Ils seront redirigés de https://uk.store.ipdata.co vers https://de.store.ipdata.co et https://au.store.ipdata.co.

    // Getting the country code from the user's IP
    $.get("https://api.ipdata.co?api-key=test", function (response) {
      if (response.country_code == 'UK') {
        window.location.href = "https://uk.store.ipdata.co";
        } else if (response.country_code == 'DE') {
        window.location.href = "https://de.store.ipdata.co";
        } else if (response.country_code == 'AU') {
        window.location.href = "https://au.store.ipdata.co";
        }
    }, "jsonp");

Vous pouvez également personnaliser le contenu de votre site en fonction de l'emplacement de l'utilisateur. Voici un exemple qui affiche une offre spéciale uniquement pour les visiteurs britanniques:

    // Getting the country name from the user's IP
    $.get("https://api.ipdata.co?api-key=test", function (response) {
      if (response.country_code == 'UK') {
        alert("Special offer for all our users from " +response.country_name+ "!");
        }
    }, "jsonp");

Au lieu de cibler un pays entier, vous pouvez explorer la région, la ville ou le code postal (code postal). Vous pouvez également cibler un fuseau horaire ou une devise spécifique.

Vous pouvez personnaliser davantage votre contenu en affichant l'heure locale de l'utilisateur (ajustée pour l'heure d'été) et le symbole de devise locale. Pour demander des données de fuseau horaire pour l'adresse IP «3.3.3.3»:

    $ curl https://api.ipdata.co/3.3.3.3/time_zone?api-key=test

Vous recevrez cette réponse, qui comprend le nom et l'abréviation du fuseau horaire, son décalage UTC, qu'il s'agisse actuellement de l'heure d'été et l'heure locale:

    {
        "name": "America/Los_Angeles",
        "abbr": "PDT",
        "offset": "-0700",
        "is_dst": true,
        "current_time": "2019-03-27T01:13:48.930025-07:00"
    }

La détection des devises est similaire. Voici un exemple pour l'adresse IP "203.100.0.51":

    curl https://api.ipdata.co/203.100.0.51/currency?api-key=test

Et la réponse:

    {
        "name": "Australian Dollar",
        "code": "AUD",
        "symbol": "AU$",
        "native": "$",
        "plural": "Australian dollars"
    }

Protégez votre site Web contre les menaces

Vous pouvez également utiliser ipdata pour identifier les menaces potentielles contre votre site Web. Ils maintiennent une base de données de plus de 600 millions d'adresses IP malveillantes, de proxys ouverts, de nœuds Tor, de spammeurs, de botnets et d'attaquants. Celles-ci sont agrégées uniquement à partir de sources fiables de haute qualité. Vous pouvez utiliser ces informations de différentes manières:

  • Protégez vos commentaires en bloquant les spammeurs connus et les mauvais bots, réduisant ainsi le besoin de CAPTCHA,
  • Détecter les fraudes en déterminant si leur carte de crédit provient d'un pays différent de celui où elles se trouvent,
  • Bloquer le trafic anonyme pour éliminer les risques provenant de ces réseaux,
  • Bloquer les pays à haut risque, tels que les pays d'origine de la plupart de vos logiciels malveillants et attaques,
  • Empêchez les «abus d'essai gratuit» en détectant les utilisateurs Proxy et Tor.

Voici comment accéder aux données de menace pour l'adresse IP "103.76.180.54":

    curl https://api.ipdata.co/103.76.180.54/threat?api-key=test

La demande génère la réponse suivante:

    {
        "is_tor": true,
        "is_proxy": false,
        "is_anonymous": true,
        "is_known_attacker": false,
        "is_known_abuser": false,
        "is_threat": false,
        "is_bogon": false
    }

Le visiteur utilise un réseau Tor. is_anonymous est vrai si le visiteur est un utilisateur Tor ou Proxy. Vous pouvez utiliser ipdata pour empêcher les utilisateurs anonymes de créer un compte. Voici un exemple de code de la documentation officielle:

    // Getting the anonymity status from the user's IP
    $.get("https://api.ipdata.co?api-key=test", function (response) {
      if (response.threat.is_anonymous) {
        alert("You are not allowed to create an account.");
        }
    }, "jsonp");

Vous pouvez être plus précis, par exemple, en bloquant les utilisateurs proxy mais en laissant passer les utilisateurs Tor:

    // Getting the anonymity status from the user's IP
    $.get("https://api.ipdata.co?api-key=test", function (response) {
      if (response.threat.is_proxy) {
        alert("You are not allowed to create an account.");
        }
    }, "jsonp");

Certains utilisateurs sont des récidivistes, ayant été signalés à plusieurs reprises par des administrateurs d'autres sites Web pour spam ou activité malveillante. Vous pouvez les empêcher de créer un compte en les bloquant si l'un de ces champs est vrai:

  • is_known_abuser: Adresses IP signalées comme sources de spam,
  • is_known_attacker: Adresses IP signalées comme étant à l'origine d'activités malveillantes.

Pourquoi choisir ipdata?

ipdata se compare très favorablement aux autres API de géolocalisation IP. Il est écrit en Python 3 avec un temps d'exécution moyen de 2,9 ms. Il est suffisamment rapide et fiable pour satisfaire une longue liste de clients, notamment Comcast, Redhat, Cooperpress, Sphero, AMD et NASA.

ipdata est hautement évolutif, avec une faible latence à l'échelle mondiale. L'API traite des millions de demandes chaque jour à une vitesse moyenne de seulement ~ 65 ms et s'exécute dans onze centres de données à travers le monde:

  • 4 aux États-Unis,
  • 1 au Canada,
  • 2 en Europe (Londres et Francfort),
  • 1 en Inde (Mumbai),
  • 1 en Amérique du Sud (Sao Paulo),
  • 1 en Europe (Seol), et
  • 1 en Australie (Sydney).

Selon Jonathan Kosgei, le fondateur d'ipdata, le temps d'exécution est maintenu bas en n'effectuant aucune lecture ou écriture de base de données dans le code de l'application. "Une fonction d'autorisation distincte gère l'obtention des données d'utilisation de DynamoDB et l'autorisation des utilisateurs selon qu'ils respectent ou non leur quota. Et ses résultats sont mis en cache. "

Commencez à géolocaliser vos visiteurs avec ipdata

À présent, je suis sûr que vous avez pensé à une douzaine de façons d'utiliser ipdata pour améliorer et protéger votre site Web ou ceux de vos clients. Inscrivez-vous gratuitement et commencez à le tester!

Vous pouvez en savoir plus sur l'infrastructure d'ipdata dans ces articles:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *