Agence web » Actualités du digital » Comment obtenir des informations de localisation à partir d'une adresse IP

Comment obtenir des informations de localisation à partir d'une adresse IP

Shutterstock / Artistdesign29

Ce n’est pas de la magie CSI: il est facile d’obtenir des informations de localisation à partir d’une adresse IP. Internet est divisé en morceaux, appelés sous-réseaux, répartis dans le monde entier. Obtenir un emplacement est aussi simple que de trouver dans quel sous-réseau appartient une adresse IP.

Comment ça marche, de toute façon?

Les sous-réseaux sont définis par la notation CIDR, qui est juste une manière concise de représenter une plage d'adresses IP. Par exemple, 192.168.1.0/24 représente la plage de 192.168.1.0 à 192.168.1.255. Le nombre qui suit la barre oblique indique le nombre de bits utilisés pour l'adresse (dans ce cas, les 24 premiers bits, qui composent les 3 premiers octets) et le reste est attribué aux périphériques (dans ce cas, les 8 derniers bits, constituant le dernier nombre de l'adresse).

Les plus gros morceaux sont alloués par l'Internet Assigned Numbers Authority (IANA). L'IANA est en charge d'attribuer le premier numéro d'une adresse IP, à partir de 0.XXX.XXX.XXX à 255.XXX.XXX.XXX. L'attribution d'adresses dans ces blocs est donnée à davantage d'agences locales.

Par exemple, l'adresse IP 173.79.255.255 fait partie de la 173.0.0.0/8 bloc, qui a été attribué à l'American Registry for Internet Numbers (ARIN) en 2008. Dans ce bloc, 173.64 à travers 173.79 a été attribué à Verizon pour une utilisation dans la région du nord de la Virginie, où se situe notre exemple d'adresse IP.

Vous ne pourrez pas suivre une personne chez elle comme dans les films, mais vous pouvez facilement obtenir des informations sur la ville / région. Tout cela est public et en ligne, et vous pouvez vérifier votre propre adresse à l'aide des outils de recherche d'ARIN.

Donc, la seule chose réelle que vous devez faire pour obtenir des informations de localisation à partir d'une adresse IP est d'avoir un tableau de toutes les différentes allocations que l'IANA, ARIN et d'autres ont faites; alors, vous pouvez simplement rechercher la table comme n'importe quelle autre base de données.

Les informations sont toutes disponibles publiquement, donc si vous voulez les rechercher vous-même sur le site Web d'ARIN, vous pouvez, mais il y a des gens qui ont déjà compilé des bases de données de localisation IP et ont rendu le processus beaucoup plus facile.

Consulter une base de données de localisation IP

Il y en a beaucoup en ligne, beaucoup d'entre eux étant totalement gratuits. KeyCDN exécute un outil de recherche gratuit, avec une API à partir de laquelle vous pouvez y accéder. Tapez simplement l'adresse IP et il vous montrera toutes les informations dont il dispose.

L'accès à ces informations à partir d'une API est particulièrement utile lorsque vous souhaitez rechercher un emplacement par programmation. Par exemple, si vous souhaitez vérifier l'emplacement des adresses IP problématiques sur votre serveur, vous pouvez récupérer l'adresse IP dans les fichiers journaux et l'exécuter par une API. Si elle est étrangère ou provient d'un endroit étrange, elle peut être malveillante.

Vous pouvez accéder à l'API de KeyCDN à partir de l'URL suivante, avec un utilitaire tel que curl:

curl https://tools.keycdn.com/geo.json?host=173.79.254.254

Ou à partir d'un langage de programmation comme PHP:

$IP = '173.79.254.254';
$json = file_get_contents('https://tools.keycdn.com/geo.json?host=' . $IP);
$obj = json_decode($json);

Cette API particulière renvoie un objet JSON avec les informations. Par exemple, vous pouvez trouver le code postal d'une adresse avec response.data.geo.postal_code:

{
  "status": "success",
  "description": "Data successfully received.",
  "data": {
    "geo": {
      "host": "173.79.254.254",
      "ip": "173.79.254.254",
      "rdns": "pool-173-79-254-254.washdc.fios.verizon.net",
      "asn": 701,
      "isp": "MCI Communications Services, Inc. d/b/a Verizon Business",
      "country_name": "United States",
      "country_code": "US",
      "region_name": "Virginia",
      "region_code": "VA",
      "city": "Alexandria",
      "postal_code": "22309",
      "continent_name": "North America",
      "continent_code": "NA",
      "latitude": 38.719,
      "longitude": -77.1067,
      "metro_code": 511,
      "timezone": "America/New_York",
      "datetime": "2019-08-22 17:30:48"
    }
  }
}

Le débit de l'API est limité à trois requêtes par seconde, ce qui devrait convenir à une utilisation normale.

Si vous souhaitez faire un grand nombre de demandes très rapidement, vous aurez besoin de votre propre base de données. Ceux-ci sont également accessibles au public; IP2Location offre une version «allégée» de leur base de données gratuitement, mais vous pouvez également acheter une table avec des entrées plus précises. Cela se présente sous la forme d'un CSV, que vous pouvez facilement charger dans MySQL ou dans une autre solution de base de données et accéder par programme.

★★★★★