Localiser une adresse IP avec Windows et PowerShell

Catégorie < windows >

1FORMATIK.com
Espace ~public
© 1998 - 2024

Sommaire

  • Préambule sur la localisation d'une adresse IP
  • Vidéo illustrative YouTube
  • Code source du script PS1
  • Téléchargement du fichier ZIP

Information

Rédigé par Antoine
Publié le 2023-12-18
Modifié le 2023-12-18
839 affichages
2 likes
0 non-like

Préambule sur la localisation d'une adresse IP

Il existe plusieurs services sur Internet (des API) qui permettent de localiser une adresse IP.

La Localisation d'adresses IP via ces API n'est souvent qu'une estimation, et pour plusieurs raisons on ne peut généralement pas refléter avec précision l'emplacement physique réel d'un utilisateur.

Les principales raisons sont :

  • L'utilisation des adresses IP dynamiques : de nombreux fournisseurs d'accès à Internet (FAI) attribuent des adresses IP dynamiques à leurs utilisateurs. Cela signifie que l'adresse IP d'un utilisateur change fréquemment. De ce fait les bases de données de géolocalisation ne sont pas toujours mises à jour en temps réel, ce qui entraine des erreurs.
  • La dissimulation derrière un Proxy et/ou un VPN : de plus en plus d'internautes utilisent des services de proxy ou de réseau privé virtuel (VPN) pour masquer leur emplacement réel.
  • L'utilisation de données publiques trop souvent obsolètes : les API de géolocalisation utilisent des données publiques. Ces bases de données fonctionnent principalement en agrégeant les informations des enregistrements WHOIS.
  • La protection de la vie privée : pour des raisons de confidentialité, certains FAI ou entreprises peuvent choisir de limiter la précision des informations de géolocalisation associées à une adresse IP

Il est ainsi important de prendre en compte ces limitations lors de l'utilisation de services de géolocalisation.

Vidéo illustrative via YouTube

Code source du script PS1

Ce script PowerShell localise d'une adresse IP en utilisant l'API ip-api.com.

Voici le code source du script PowerShell.

function GeolocaliserIP {
$adresseIP = Read-Host "Saisissez l'adresse IP à localiser (ou tapez 'fin' pour quitter) "

if ($adresseIP -eq 'fin') 
{
return $false
}

$api = "http://ip-api.com/json/$adresseIP"

$resultats = Invoke-RestMethod -Method Get -Uri $api

Write-Host "-------------------------------------------------------------"
Write-Host "Résultats de la géolocalisation pour l'adresse IP $adresseIP :"
Write-Host "Pays : $($resultats.country)"
Write-Host "Région : $($resultats.regionName)"
Write-Host "Ville : $($resultats.city)"
Write-Host "Code Postal : $($resultats.zip)"
Write-Host "Latitude : $($resultats.lat)"
Write-Host "Longitude : $($resultats.lon)"
Write-Host "FAI : $($resultats.isp)"
Write-Host "-------------------------------------------------------------"

Read-Host "Appuyez sur Entrée pour continuer"

return $true
}

while (GeolocaliserIP) {}

Voici une explication du script :

  • La fonction commence en demandant à l'utilisateur de saisir une adresse IP à géolocaliser.
  • Si l'utilisateur entre fin, la fonction retourne false, indiquant ainsi que l'utilisateur souhaite quitter.
  • L'URL de l'API est construite en ajoutant l'adresse IP à la fin de la chaîne de base http://ip-api.com/json/.
  • Une requête API est effectuée à l'aide de Invoke-RestMethod pour obtenir les résultats de géolocalisation.
  • Les résultats sont affichés à l'écran à l'aide de la commande Write-Host.
  • Une boucle while est utilisée pour appeler la fonction GeolocaliserIP en continu tant que celle-ci retourne true.
  • Cela signifie que l'utilisateur peut continuer à saisir des adresses IP pour les géolocaliser jusqu'à ce qu'il entre fin.
  • Les résultats affichés comprennent des informations telles que le pays, la région, la ville, le code postal, la latitude, la longitude et le fournisseur d'accès Internet (FAI).
  • Une instruction Read-Host est utilisée pour faire une pause à la fin de chaque itération de la boucle, permettant à l'utilisateur de voir les résultats.
  • L'utilisateur doit appuyer sur Enter pour continuer ou saisir fin pour quitter le programme.

Télécharger le logiciel

Cliquez sur le lien ci-contre pour télécharger le fichier archive au format ZIP.

Il contient les fichiers suivants :

  • Fichier script ip.ps1.
  • Fichier information 1formatik.txt.

Une fois les fichiers dézippés, effectuez un clic-droit sur le fichier ps1, puis sélectionnez Exécuter avec PowerShell.

Ce contenu vous a-t-il été utile ?

Faire un don

Soutenez-moi par un don.

Par avance, merci.