Quelle est mon adresse IP ?

serveurVotre adresse est donnée par le serveur de r-no.fr, qui la voit à chaque requête : cette partie ne peut pas être vérifiée depuis votre navigateur. Pourquoi, et ce qu’elle fait.

C’est l’adresse qu’Internet voit quand vous vous connectez : celle de votre box, de votre opérateur ou de votre VPN, pas celle de votre ordinateur sur votre réseau local.

Transparence

Cet outil doit interroger le serveur : votre navigateur ne connaît pas l’adresse sous laquelle Internet le voit.

Pourquoi cet outil porte l’étiquette [serveur]
La réponse vient d’une règle du serveur, affichée en entier plus bas : elle renvoie l’adresse d’où vient la requête. Rien de ce que vous saisissez n’est envoyé, et le serveur n’apprend rien qu’il ne reçoive déjà avec chaque page. Mais rien ne vous permet de vérifier d’ici que c’est bien cette règle qui répond : pour cette partie, il faut faire confiance à r-no.fr.
La requête
La page interroge /ip/my-ip/address, sur ce même site. Le serveur répond l’adresse d’où vient la requête, en texte brut, et rien d’autre. La politique de sécurité du contenu (CSP) de cette page n’autorise qu’une autre destination, comme sur toutes les pages du site : https://stats.r-no.fr, la mesure d’audience (connect-src 'self' https://stats.r-no.fr, voir plus bas). Aucun envoi de formulaire.
Mesure d’audience
Comme toutes les pages du site, celle-ci compte sa visite avec Umami, installé sur le serveur de R-no lui-même (stats.r-no.fr). Il reçoit l’adresse de la page, sans paramètres ni ancre, le site d’où vous venez (son nom de domaine seulement), votre navigateur, votre système, votre langue et la taille de votre écran, ainsi que le pays, la région et la ville déduits de votre adresse IP, qui n’est pas conservée. Il ne reçoit jamais ce que vous saisissez, ni le résultat de l’outil. Aucun cookie, rien d’enregistré dans votre navigateur ; si votre navigateur demande à ne pas être suivi (Do Not Track), rien n’est mesuré. Les données sont effacées au bout de 25 mois.
  • /commun/mesure.js : le filtre appliqué avant chaque envoi, écrit pour R-no Toolbox. 1.4 kB
    SHA-256 225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716
  • https://stats.r-no.fr/m.js : le script de suivi d’Umami, libre (MIT), servi par le serveur de mesure. Son empreinte n’est pas affichée ici : elle change à chaque version d’Umami, et vous ne pouvez pas vérifier depuis votre navigateur qu’il s’agit du code publié. Pour cette partie, il faut faire confiance à R-no.
Depuis ce site uniquement
Le serveur ne répond qu’aux requêtes que votre navigateur marque comme venant d’une page de r-no.fr elle-même (l’en-tête Sec-Fetch-Site: same-origin, qu’une page ne peut pas choisir). Les autres sites, curl et les scripts sont refusés, pour que l’adresse ne soit pas réutilisée par des outils extérieurs. C’est un frein, pas un verrou : un script peut ajouter cet en-tête lui-même.
Ce que le serveur garde
Tout site web reçoit votre adresse IP à chaque requête : c’est ainsi que la réponse retrouve son chemin. Comme toute requête vers ce site, celle-ci est notée dans les journaux d’accès du serveur : votre adresse IP, la date et l’heure, l’adresse demandée et le nom de votre navigateur. Ces journaux servent à faire fonctionner et à sécuriser le serveur, et ne sont jamais partagés. Pour l’instant, leur durée de conservation n’est pas limitée automatiquement ; une rotation des journaux est en cours de mise en place. La réponse elle-même est marquée comme ne devant pas être mise en cache.
D’où vient l’adresse
Le proxy inverse placé devant le site relève l’adresse de la connexion qu’il reçoit, et la transmet dans un en-tête qu’il réécrit lui-même : un visiteur ne peut pas faire afficher une autre adresse en envoyant cet en-tête. Chaque déploiement le vérifie aussi.
Le code qui s’exécute ici

Dans votre navigateur, vérifiable

  • app.js: demande l’adresse et l’affiche. Écrit pour R-no Toolbox, non minifié, sans bibliothèque tierce. 3.4 kB
    SHA-256 8cc549768e63569ff7192a4578241d4aa6df1ac54cad1832638bd1b8ca15c10e
  • textes.js: les messages en français de l’outil, affichés par son script (le reste de la page française est écrit dans son HTML à la construction du site). Il ne fait que définir des textes, sans aucune logique. 6.2 kB
    SHA-256 69c366f21ef4b77e7a7668dfd7cd89434b0095004f359bced0443a52cb937989
  • /commun/langue.js: l’aide à la traduction, la même sur toutes les pages du site. Elle lit la langue de la page et donne à l’outil ses messages dans cette langue. Elle ne conserve rien. 1.6 kB
    SHA-256 80f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631

Sur le serveur, à croire sur parole

/ip/my-ip/address n’est pas un programme, mais une règle du serveur web nginx, dans la configuration du site. La voici, sans ses commentaires :

map $http_x_real_ip $ip_visiteur {
    "~^[0-9A-Fa-f:.]{2,45}$" $http_x_real_ip;
    default                  $remote_addr;
}

location = /ip/my-ip/address {
    default_type text/plain;
    add_header Cache-Control "no-store" always;
    add_header X-Content-Type-Options "nosniff" always;
    if ($appel_du_site = 0) {
        return 403 "Only r-no.fr pages can ask for this address: …";
    }
    return 200 "$ip_visiteur\n";
}

X-Real-Ip est écrit par le proxy inverse placé devant le site (voir plus haut) ; $appel_du_site vaut 1 quand le navigateur indique que la requête vient d’une page de r-no.fr.

Ce qui est conservé
Aucun cookie, rien dans l’adresse. La langue est donnée par l’adresse elle-même (/en/ ou /fr/) : rien n’est conservé pour s’en souvenir.
Vérifiez vous-même
Téléchargez le script et comparez son empreinte avec celle affichée ci-dessus :
curl -s https://r-no.fr/ip/my-ip/app.js | shasum -a 256
Limites
Ce site n’est joignable qu’en IPv4 pour l’instant : vous verrez votre adresse IPv4, même si votre connexion a aussi de l’IPv6. Un navigateur trop ancien pour envoyer l’en-tête Sec-Fetch-Site (Safari avant 16.4, par exemple) est refusé comme un outil extérieur. Aucune localisation ni aucun opérateur ne sont affichés : il faudrait pour cela une base de données. Pour le nom DNS inverse et la fiche du registre de votre adresse, voir ip/reverse et ip/whois.