Mon Adresse IP

- Localisation en cours... Pour afficher la véritable adresse IP du visiteur, cliquez ici

Utilisation du terminal et de l’environnement système

Parler uniquement de l’utilisation du terminal : pour chaque « variante courante », donner la commande + expliquer quel problème elle résout (pile de protocoles, format de sortie, timeouts, retries, signification du chemin).

macOS / Linux / Raspberry Pi / BSD

Les besoins les plus fréquents dans un terminal sont : une sortie propre (une ligne copiable/écrivable/comparable) et des scripts qui ne se bloquent pas. C’est pourquoi les recommandations ici incluent par défaut : mode silencieux (ne pas polluer la sortie) + HTTPS (éviter le mauvais protocole) + des timeouts si nécessaire (éviter les blocages).

Usage de base (le plus recommandé)

curl -4  my.ipin.io
Invite de commandes
C:\Users\admin>curl -4 my.ipin.io
171.83.40.149
  • -s : désactive la barre de progression/les messages pour une sortie plus « pure » (évite le bruit dans les scripts).
  • https:// : vivement recommandé d’écrire le schéma complet, pour éviter que certains environnements ne basculent par défaut en http et n’entraînent des redirections/interceptions/problèmes de politique de ports.
  • Chemin racine / : renvoie strictement l’IPv4 ; si l’IPv4 est indisponible, cela échoue (évite de prendre une IPv6 pour une IPv4).

Variantes courantes (le set le plus utilisé en pratique)

# A1) IPv6 uniquement (pour valider/dépanner l’IPv6)

   curl -s https://my.ipin.io/v6

   # A2) Résumé de localisation (sortie texte plus lisible en terminal)
   curl -s https://my.ipin.io/info

   # A3) Forcer le JSON en terminal (changer l’UA en non-curl)
   curl -s -A "Mozilla/5.0" https://my.ipin.io/info

   # A4) Forcer IPv4 / forcer IPv6 (diagnostiquer quelle pile de protocoles est réellement utilisée)
   curl -s -4 https://my.ipin.io
   curl -s -6 https://my.ipin.io/v6

   # A5) Ajouter des timeouts (indispensable en script : éviter les blocages liés aux fluctuations réseau)
   curl -s --connect-timeout 3 --max-time 8 https://my.ipin.io

   # A6) Ajouter des retries (réseau faible / fluctuations ponctuelles : 1–2 recommandés)
   curl -s --retry 2 --connect-timeout 3 --max-time 8 https://my.ipin.io/info

Explication des variantes (ce qu’il faut vraiment savoir)

  • /v6 : au niveau de l’endpoint, renvoie uniquement l’IPv6 ; utile pour « vérifier explicitement si l’IPv6 est disponible ».
  • /info : au niveau de l’endpoint, renvoie l’IP + des champs de localisation ; sortie plus lisible en terminal, adaptée à une « vérification visuelle de la sortie (egress) ».
  • -A "Mozilla/5.0" : contrôle du format de sortie. Par défaut, l’UA de curl contient curl → le service renvoie du texte ; UA modifié → le service renvoie du JSON.
  • -4/-6 : force la pile de protocoles au niveau de la connexion (le client n’utilise que v4/v6 pour se connecter), souvent utilisé pour diagnostiquer « pourquoi je passe toujours en v6 ».
  • --connect-timeout : ne concerne que la phase « établissement de connexion » ; si le handshake/la connexion est lente, l’arrêt se fait ici.
  • --max-time : limite supérieure de la durée totale de la requête ; la plus importante en automatisation (évite les blocages).
  • --retry : améliore le taux de réussite, mais n’utiliser que peu de retries (1–2). Trop de retries ralentit les tâches et amplifie les incidents.

Android (Termux)

Problèmes courants sur Termux : le réseau mobile fluctue davantage, le chemin est plus complexe, et le choix de la pile de protocoles est moins stable. Donc recommandation par défaut : pile fixée + timeouts + retries si nécessaire.

Usage de base (recommandé)

curl -s -4 --connect-timeout 5 --max-time 10 https://my.ipin.io

Variantes courantes

# B1) Résumé de localisation (confirmer rapidement la localisation de sortie)
    curl -s https://my.ipin.io/info

    # B2) Vérification IPv6 (uniquement si tu veux explicitement tester l’IPv6)
    curl -s -6 https://my.ipin.io/v6

    # B3) Réseau faible : quelques retries
    curl -s --retry 2 --connect-timeout 5 --max-time 10 https://my.ipin.io

Explication des variantes

  • -4 : si tu veux clairement l’IPv4, fixe-le pour éviter que l’environnement ne privilégie l’IPv6 et que le résultat « dérive ».
  • /info : les réseaux mobiles changent souvent de sortie ; c’est la façon la plus directe de vérifier si la localisation correspond à l’attendu.
  • Stratégie de retries : les timeouts ponctuels sont fréquents en mobile ; quelques retries augmentent nettement le taux de réussite.

Windows (CMD / PowerShell)

Sous Windows, il est utile de bien distinguer les usages : CMD/batch vise plutôt « récupérer une ligne de texte » ; PowerShell vise plutôt « récupérer du JSON et parser directement des champs ».

Usage de base (texte : une ligne IP)

curl.exe -s https://my.ipin.io

Variantes courantes

# C1) Résumé de localisation (lisible dans le terminal)
    curl.exe -s https://my.ipin.io/info

    # C2) PowerShell récupère du JSON (pratique pour parser dans un script)
    Invoke-RestMethod -Uri "https://my.ipin.io/info"

    # C3) Vérification IPv6
    curl.exe -s https://my.ipin.io/v6

    # C4) Dépannage connexion (DNS, handshake, raisons des timeouts ; sortie longue)
    curl.exe -v https://my.ipin.io/info

Explication des variantes

  • Invoke-RestMethod : idéal pour le JSON, évite le parsing manuel.
  • -v : uniquement pour diagnostiquer. Cela affiche beaucoup d’infos de debug ; ne pas activer par défaut dans les scripts.
  • Sources fréquentes de problèmes : proxy système, passerelle d’entreprise, réécriture DNS, règles hosts — « la même commande » peut se comporter différemment selon la machine.

iOS (iSH / Terminaux légers)

Les terminaux légers n’ont souvent que wget. Note : l’UA par défaut de wget ne contient souvent pas curl, donc on obtient souvent du JSON. Si tu veux « une ligne de texte », tu dois définir l’UA explicitement pour déclencher la sortie texte terminal.

Usage de base

wget -qO- https://my.ipin.io

Variantes courantes

# D1) Résumé de localisation
    wget -qO- https://my.ipin.io/info

    # D2) Forcer le texte brut (une ligne IP)
    wget -qO- -U "curl/8" https://my.ipin.io

    # D3) Forcer le JSON (intégration stable)
    wget -qO- -U "Mozilla/5.0" https://my.ipin.io/info

Explication des variantes

  • -qO- : silencieux + sortie vers stdout, pratique pour les scripts.
  • -U : l’interrupteur clé pour contrôler le format de sortie (UA contient curl → texte ; UA non-curl → JSON).

OpenWRT / Appareils embarqués

L’objectif principal sur les appareils embarqués est : ne pas se bloquer. Il faut donc définir des timeouts. Pour la « détection de changement d’IP publique », éviter aussi les faux positifs : un échec de requête ne signifie pas que l’IP a changé.

Usage de base (avec timeout)

wget -qO- --timeout=10 https://my.ipin.io

Variantes courantes

# E1) Résumé de localisation (auto-vérification de la sortie)
    wget -qO- --timeout=10 https://my.ipin.io/info

    # E2) Forcer le texte brut (une ligne IP)
    wget -qO- --timeout=10 -U "curl/8" https://my.ipin.io

Explication des variantes

  • --timeout : fortement recommandé par défaut en embarqué pour éviter que les tâches planifiées ne se bloquent.
  • Format de sortie stable : wget peut renvoyer du JSON par défaut ; si ton script veut une seule ligne IP, déclencher la sortie texte via l’UA est plus fiable.

Docker / CI / Tâches automatisées

Les environnements d’automatisation sont plus incertains : fluctuations DNS, timeouts brefs, changements de politique de sortie sont plus fréquents. Recommandation par défaut : timeouts + peu de retries + format de sortie figé (évite que le parsing casse selon les runners).

Usage de base (avec timeouts)

curl -s --connect-timeout 3 --max-time 8 https://my.ipin.io

Variantes courantes (les plus utiles en CI)

# F1) Récupérer la localisation de façon stable (avec retries)
    curl -s --retry 2 --connect-timeout 3 --max-time 8 https://my.ipin.io/info

    # F2) CI veut du JSON stable : fixer l’UA en non-curl
    curl -s -A "Mozilla/5.0" --connect-timeout 3 --max-time 8 https://my.ipin.io/info

    # F3) Dépannage : forcer la pile de protocoles
    curl -s -4 https://my.ipin.io
    curl -s -6 https://my.ipin.io/v6

Explication des variantes

  • Fixer l’UA : en CI, différents images/outils peuvent avoir des UAs différents ; le fixer évite les dérives de format de sortie.
  • Peu de retries : améliore le taux de réussite, mais les échecs doivent rester rapidement visibles (plus simple à diagnostiquer).

Questions fréquentes (FAQ)

Q1 : J’utilise curl -s https://my.ipin.io — pourquoi ça échoue parfois ou renvoie une erreur ?

Le chemin racine est « IPv4 strict » : si le lien actuel ne peut pas obtenir d’IPv4, l’appel échoue explicitement (au lieu de « faire semblant » avec une IPv6). Cela arrive souvent sur : des réseaux IPv6-only, certains environnements proxy/passerelle, ou quand ton client est forcé en IPv6 et qu’aucun IPv4 utilisable n’est disponible sur le chemin.

Méthode de diagnostic : utiliser curl -s -4 pour forcer l’IPv4 ; ou utiliser /info pour voir l’IP de sortie actuelle, puis décider de la suite.

Q2 : Je requête /info avec curl — pourquoi ce n’est pas du JSON ?

Parce que les outils de terminal utilisent par défaut le « mode sortie terminal », et /info dans ce mode affiche un cadre texte plus lisible. Si tu veux du JSON (pour jq/parsage programme), change l’UA en non-curl.

curl -s -A "Mozilla/5.0" https://my.ipin.io/info

Q3 : Pourquoi la même commande donne un format de sortie différent selon les machines ?

Le format de sortie dépend du User-Agent de la requête. Selon l’outil (curl / wget / outils fournis par certaines distributions), l’UA par défaut peut varier, ce qui entraîne des différences entre réponses texte et JSON.

Solution : fixer l’UA. Pour du texte, faire en sorte que l’UA contienne curl ; pour du JSON, faire en sorte que l’UA ne contienne pas curl. En automatisation/CI, fixer l’UA est la clé d’un « parsing stable ».

Q4 : Pourquoi je veux clairement l’IPv4, mais j’ai l’impression d’être « passé par l’IPv6 » ?

Il faut distinguer deux choses : la pile de protocoles utilisée pour se connecter (le client choisit v4/v6 pour se connecter), et le type d’IP renvoyé par l’endpoint (déterminé par le chemin / ou /v6).

Conseil de diagnostic : utiliser -4/-6 pour forcer la pile à la connexion et confirmer quelle route ton réseau préfère réellement. Si tu veux uniquement l’IPv4, utilise le chemin racine et force -4 si nécessaire.

Q5 : Comment l’écrire dans un script pour éviter les faux positifs et les blocages ?

Combinaison recommandée : silencieux (éviter le bruit), timeouts (éviter les blocages), peu de retries (résister aux fluctuations), et ne pas écraser l’ancienne valeur en cas d’échec (ne pas confondre échec et changement).

curl -s --retry 2 --connect-timeout 3 --max-time 8 https://my.ipin.io

Q6 : Je dois privilégier curl ou wget ?

Si possible, utilise curl : paramètres plus riches et meilleur pour le dépannage. Mais dans les environnements légers/embarqués, n’avoir que wget est courant — wget convient très bien. L’essentiel est : définir des timeouts, sortir vers stdout, et fixer l’UA si nécessaire pour verrouiller le format de sortie.