Localisation par adresse ip en script batch

Résolu
Bonjour,
J'aimerai crée un programme en batch qui localise les adresses IP soit en se connectant directement un site fais exprès et qui récupère les inforamtions pour mon logiciel ou alors un script fais exprès.
Pouvez vous m'aider svp
Merci

5 réponses

  1. Bonjour,

    J'ai concocté un script qui se charge de la géolocalisation, en passant par le site ipify.

    Pour pouvoir utiliser l'API gratuite d'ipify, il faut juste créer un compte pour obtenir une clé.
    Cette clé sera à renseigner à la ligne 6 du script :
    set "api_key=


    Voilà le script :

    @echo off
    chcp 65001 >nul
    mode con cols=80 lines=60
    setlocal enableextensions enabledelayedexpansion
    
    set "api_key=at#VeUYrH7jk2PHaNn5NFHF9LcwWwwZT"
    
    :debut
    
    set "adresse="
    cls & echo.
    set /p adresse=">>> Entrez l'adresse IP à géolocaliser = "
    if not defined adresse (goto :debut)
    
    echo %adresse% | findstr /r "\<[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\>" >nul || goto :debut
    
    curl -G -s "https://geo.ipify.org/api/v1?apiKey=%api_key%&ipAddress=%adresse%" > %TMP%\temp498.txt
    set /p string=<%TMP%\temp498.txt
    
    set "prefix="
    
    :parse
    
    for /f "tokens=1* delims=," %%A in ("!string!") do set data=%%A & set string=%%B
    
    set data=!data:"= !
    set data=!data:{= !
    set data=!data:}= !
    set data=!data:\=!
    set data=!data:[=!
    set data=!data:]=!
    set data=!data:location :  =!
    set data=!data: ip :=ip :!
    set data=!data:as :  =!
    set data=!data:proxy :  =!
    
    set data=!data:u00ce=Î!
    set data=!data:u00e9=é!
    set data=!data:u00e8=è!
    set data=!data:u00ee=î!
    set data=!data:u00f4=ô!
    set data=!data:u00e0=à!
    set data=!data:u00ea=ê!
    
    echo.!data! | findstr /lic:"Located in" >nul && set "prefix=!data:~0,-1!," || (echo. & echo !prefix!!data! & set "prefix=")
    
    if defined string (goto :parse)
    
    echo.
    echo ###############################################################################
    echo.
    
    for /f "tokens=2 delims=:" %%A in ('curl -G -s "https://geo.ipify.org/service/account-balance?apiKey=%api_key%"') do set credit=%%A
    
    set credit=!credit:~0,-1!
    
    echo Grâce à l'api gratuite d'ipify vous avez droit à 1000 requêtes par mois.
    echo.
    echo Ce mois-ci, il vous reste !credit! requêtes à effectuer.
    echo.
    echo ###############################################################################
    
    echo. & pause
    exit


    1. Salut,
      Merci beaucoup pour ta réponse !
      J'ai essayer ton script mais j'ai un petit problème..
      J'ai entré ma clé ipify dans l'emplacement pour mais quand je rentre une adresse ip sa me marque sa :

      >>> Entrez l'adresse IP à géolocaliser = 192.168.56.36 (c'est une adresse aléatoire)

      "=

      ###############################################################################

      Grâce à l'api gratuite d'ipify vous avez droit à 1000 requêtes par mois.

      Ce mois-ci, il vous reste ~0,-1 requêtes à effectuer.

      ###############################################################################
      Appuyer sur une touche pour contiuer...

      Et des que j'appuie sur la touche sa me fais quitter
      Voila je sais pas si de ton côté sa marche, peut être un problème de mon côté
      En tous cas merci pour ta réponse
      1. Ouvre une invite de commandes et tape cette commande :
        curl -V


        Qu'est-ce que tu obtiens comme réponse ?

        Est-ce que tu es sur Windows 10 ?
    2. Oui je suis sur Windows 10
      Et avec la commande sa me marque:

      C:\Users\mirok>curl -V
      curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
      Release-Date: [unreleased]
      Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
      Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
      1. Donc curl est bien installé, pas de problème de ce côté.

        Ouvre une invite de commandes et tape cette commande :
        curl -G -s "https://geo.ipify.org/service/account-balance?apiKey=%api_key%"


        Pense à remplacer la variable %api_key% par ta clé.
      2. @mirokMême pas un message d'erreur ?
      3. @barnabe0057Non même pas, sa va a la ligne et reprend comme si j'avais rien fais
      4. @mirokEst-ce que tu as bien activé ton compte ipify via le lien de confirmation reçu par email ?
    3. Le script est génial en plus
      1. Merci, c'est du vite fait mais c'est déjà une bonne base.