web-dev-qa-db-fra.com

Comment mon routeur résout-il une adresse URL telle que http://router.asus.com/ en son adresse IP?

En règle générale, je me connecte à mon routeur par son adresse IP 192.168.1.1. Cependant, je peux également me connecter à l'URL router.asus.com. Mon ordinateur n'est pas connecté à Internet. Comment cela marche-t-il?

38
Ryan R

Votre routeur a son propre serveur DNS. Lorsque vous l'utilisez en ligne, il est transféré au DNS de votre fournisseur de services Internet, mais il ajoute également sa propre entrée à l'adresse router.asus.com afin de pointer sur lui-même.

Comme vous utilisez probablement DHCP, il assignera automatiquement vos machines à utiliser son propre DNS. Vous pouvez le tester en passant à un serveur DNS attribué manuellement (8.8.8.8 par exemple), vider votre DNS, puis essayer la même URL.

Notez que visiter router.asus.com avec ma connexion me conduit vers un site hébergé avec Amazon qui semble essayer de rechercher un routeur compatible sur mon réseau.

Screen shot of site at router.asus.com

On dirait qu'il utilise JQuery suivant pour essayer de récupérer un fichier JSON spécifique à partir d'un nom d'ordinateur sur le réseau:

$.ajax({
            url: "http://" + target.domainName + "/findasus.json", 
            dataType: "jsonp",
            timeout: 20000,
            global: true,
            complete: function(jqXHR, textStatus){
                switch(jqXHR.status){
                    case 0:
                        target.status = 2;
                        break;
                    default:
                        target.status = 1;
                        iAmAlive({
                            modelName: target.domainName.replace("findasus.local", "ASUS"),
                            ssid: "",
                            ipAddr: target.domainName
                        });
                }

                sessionComplete();
            }
        });

Vous pouvez voir les noms auxquels il tente d'accéder dans la capture d'écran. Littéralement, il passe en boucle et s'il obtient un succès, il sera redirigé vers ce qu'il a trouvé.

63
Jonno

Personnellement, je ne possède pas de routeur Asus, et la réponse de Jonno est très bonne, mais il existe un autre moyen pour les routeurs de le faire (même s'il n'est pas utilisé par votre particulier).

Étant donné que cette page n'est pas affichée sur HTTPS, il est tout à fait possible que le routeur intercepte simplement la requête HTTP et y réponde sans en parler à aucun serveur externe. Les routeurs Asus sont connus pour rediriger des pages dans certaines circonstances. Notez que si la redirection se produit même sans connexion Internet (c'est-à-dire sans DNS externe), elle doit être provoquée par le DNS de votre routeur. il n'y a aucune raison que les deux ne puissent pas se passer, cependant.

Mon routeur domestique Netgear, par exemple, peut bloquer des domaines et des mots clés (servant une page "bloqué par le pare-feu Netgear") même si je n'utilise pas son DNS. Je me suis assuré qu'il n'intercepte pas les requêtes DNS; le nom est résolu correctement, mais si vous accédez à la page dans un navigateur Web, la page est "bloquée".

Vous pouvez tester cette théorie en définissant vos serveurs DNS sur, par exemple, celui de Google (8.8.8.8) et en envoyant une requête ping au nom de domaine redirigé.

7
Ben N

Je voulais juste ajouter à Jonnos répondre que

admin@asus-rt-n18u:/tmp/home/root# grep asus.com /etc/*
/etc/hosts:192.168.201.5 router.asus.com

voici comment mon routeur (et le plus probable) le fait. Votre routeur est probablement en cours d’exécution avec Dnsmasq. Vous pouvez avoir un accès Shell (au moins via telnet) et chercher vous-même.

1
ElDiabolo