Ping depuis le serveur de r-no.fr
serveurUne partie de cet outil tourne sur le serveur de r-no.fr : cette partie ne peut pas être vérifiée depuis votre navigateur. Pourquoi, et ce qu’elle fait.
Exemples :
Pinguer votre propre adresse montre si votre connexion répond vue de l’extérieur, et non depuis votre réseau.
Transparence
Un navigateur ne sait pas envoyer de ping. Et l’intérêt de cet outil est de tester un autre chemin réseau que le vôtre : c’est donc le serveur de r-no.fr qui envoie le ping, pas votre navigateur. Votre navigateur lui transmet l’adresse, et affiche le résultat.
- Pourquoi cet outil porte l’étiquette [serveur]
- Le code qui pingue tourne sur le serveur. Sa source, ping.py, est affichée ci-dessous avec son empreinte, et le serveur est construit à partir de ce fichier-là, à la même version que cette page. Mais rien ne vous permet de vérifier d’ici que c’est bien lui qui s’exécute : pour cette partie, il faut faire confiance à r-no.fr. Tout ce qui tourne dans votre navigateur se vérifie, comme sur les autres outils.
- Ce que reçoit le serveur
- L’adresse à pinguer, dans le corps d’une requête, et, comme pour tout site web, votre adresse IP et le nom de votre navigateur.
- Ce que garde le serveur
- Votre adresse IP et l’adresse pinguée, en mémoire seulement, pour les limites ci-dessous : dix minutes au plus, jamais sur disque, et effacées au redémarrage du service. Le service de ping n’écrit aucune ligne de journal par requête. Comme pour toute page du site, les journaux d’accès du serveur notent la requête (adresse IP, date et heure, adresse demandée, nom du navigateur), mais pas son contenu : l’adresse pinguée n’y figure pas.
- Ce que voit l’adresse pinguée
- Quatre demandes d’écho ICMP de 64 octets, à une seconde d’écart, venant de l’adresse du serveur de r-no.fr, jamais de la vôtre. Leur contenu dit d’où elles viennent (
r-no.fr/ip/ping), pour que l’administrateur de cette machine sache à qui s’adresser. - Garde-fous
-
Ils empêchent de se servir du serveur contre quiconque, et que son adresse finisse sur des listes de blocage :
- Des adresses IPv4 écrites en chiffres seulement, jamais un nom : le serveur ne résout aucun nom pour vous.
- Jamais une adresse privée, locale ou réservée (10.0.0.0/8, 192.168.0.0/16, 127.0.0.0/8…), ni celle du serveur lui-même. Elles sont refusées dans votre navigateur, puis de nouveau par le serveur.
- Toujours quatre paquets de 64 octets, à une seconde d’écart : ni le nombre, ni la taille, ni la cadence ne se choisissent.
- Aucun ping continu : jamais plus de quatre paquets par demande, et 30 secondes de pause obligatoire entre deux ping d’un même visiteur, imposées par le serveur. Même un script qui boucle n’obtient pas mieux.
- Au plus 10 ping par visiteur, 10 par adresse pinguée (tous visiteurs confondus), 20 par réseau /24 (contre le balayage d’une plage) et 120 pour tout le service, sur 10 minutes. Un seul ping à la fois par visiteur, quatre à la fois en tout.
- Seules les requêtes de cette page sont servies (en-têtes Sec-Fetch-Site et Origin, posés par votre navigateur). Un script peut les forger : c’est un frein, et les limites ci-dessus restent le vrai garde-fou.
- Une adresse dont le titulaire demande à ne pas être pingué d’ici est exclue. Le service peut aussi être mis en pause immédiatement.
- Imposé par votre navigateur
- La politique de sécurité du contenu (CSP) de cette page autorise ce site lui-même (
connect-src 'self'), pour le ping et pour le bouton « Mon adresse », qui interroge ip/my-ip. Aucun envoi de formulaire (form-action 'none'). Une destination de plus est autorisée, comme sur toutes les pages du site :https://stats.r-no.fr, la mesure d’audience (voir plus bas). - 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-256225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716 - 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.
- /commun/mesure.js : le filtre appliqué avant chaque envoi, écrit pour R-no Toolbox. 1.4 kB
- Ce qui est conservé dans votre navigateur
- Aucun cookie, et rien dans l’adresse de cette page. La langue est donnée par l’adresse elle-même (
/en/ou/fr/) : rien n’est conservé pour s’en souvenir. - Le code
-
Dans votre navigateur, vérifiable
- app.js: vérifie l’adresse, interroge le serveur, puis calcule et affiche le résultat (pertes, minimum, moyenne…). Écrit pour R-no Toolbox, non minifié, sans bibliothèque tierce. 14.3 kB
SHA-256611623500e74d71ecc1f32fa8ae10dca8caa0cd9bed7ac1f8b20187104f7ee7d - 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. 11.0 kB
SHA-256f23f7a1c84d41450b8f2778fd04fd1bb105e5066bd89463def5add6a2b2196c1 - /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-25680f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631
Sur le serveur, à croire sur parole
- ping.py: le service de ping : les vérifications, les limites et l’envoi des paquets. Python, bibliothèque standard seulement, sans aucun privilège sur le serveur. Le service exécute ce fichier, construit à partir du même commit. 17.9 kB
SHA-256058c171b34be416bee83fd21163d969355cdba1e5c4d20710192da0c21e4623a
- app.js: vérifie l’adresse, interroge le serveur, puis calcule et affiche le résultat (pertes, minimum, moyenne…). Écrit pour R-no Toolbox, non minifié, sans bibliothèque tierce. 14.3 kB
- Testé
- Les vérifications d’adresses, les limites, les paquets et les réponses du service sont couverts par des tests automatiques, exécutés à chaque déploiement, tout comme la lecture et l’affichage des résultats dans votre navigateur.
- Vérifiez vous-même
- Téléchargez un fichier et comparez son empreinte avec celle affichée ci-dessus :
curl -s https://r-no.fr/ip/ping/app.js | shasum -a 256curl -s https://r-no.fr/ip/ping/ping.py | shasum -a 256 - Limites
-
- Pas de réponse ne veut pas dire éteint : beaucoup de pare-feu et de routeurs ignorent les ping. Et une réponse ne dit rien des ports (web, messagerie…) : le ping, c’est de l’ICMP, pas du TCP ni de l’UDP.
- Les temps sont ceux entre le serveur de r-no.fr et l’adresse, pas entre vous et elle.
- Une réponse qui met plus d’une seconde compte comme perdue.
- IPv4 seulement pour l’instant : le serveur n’a pas de connexion IPv6.