web-dev-qa-db-ja.com

私のルーターはhttp://router.asus.com/のようなURLをどのようにIPアドレスに解決しますか?

通常、私は自分のルーターにIPアドレス192.168.1.1で接続します。しかし、私はURL router.asus.comでそれに接続することもできます。私のコンピュータはインターネットに接続していません。これはどのように作動しますか?

38
Ryan R

ルーターには独自のDNSサーバーがあります。あなたがそれをオンラインで使うとき、それはあなたのISPのDNSに転送するでしょう、しかしそれはそれ自身を指すためにrouter.asus.comにそれ自身のエントリーも追加します。

DHCPを使用している可能性が高いので、自動的に自分のマシンに割り当てられて独自のDNSを使用します。手動で割り当てたDNSサーバー(たとえば8.8.8.8)に変更してDNSをフラッシュしてから同じURLを試すことでこれをテストできます。

私の接続でrouter.asus.comにアクセスすると、私のネットワーク上で互換性のあるルーターをスキャンしようとしているように見える、Amazonでホストされているサイトに私を連れて行きます。

Screen shot of site at router.asus.com

次のJQueryを使ってネットワーク上のマシン名から特定のJSONファイルを取得しようとしているようです。

$.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();
            }
        });

スクリーンショットでアクセスしようとしている名前を見ることができます。文字通りただループし、それがヒットした場合、それはそれが見つけたものにリダイレクトされます。

63
Jonno

私は個人的にAsusルーターを所有していません、そしてJonnoの答えはとても良いです、しかしルーターがこれを達成するための別の可能な方法があります(たとえあなたの特定のものによって使われなくても)。

そのページはHTTPS経由では提供されないので、ルータがHTTPリクエストを単に傍受し、外部のサーバと話すことなくそれに答えることは完全に可能です。状況によっては、Asusルーター がページをリダイレクトすることが知られています 。インターネット接続がなくても(つまり、外部DNSがない場合でも)リダイレクトが発生する場合は、ルーターのDNSが原因であることに注意してください。しかし、両方が起こらなかった理由はありません。

たとえば、私のNetgearホームルーターは、DNSを使用していなくても、ドメインとキーワードをブロックすることができます(「Netgearファイアウォールによってブロックされている」ページを処理します)。私はそれがDNS要求を傍受していないことを確認しました。名前は正しく解決されますが、Webブラウザでそのページにアクセスすると「ブロックされた」ページが表示されます。

あなたは、あなたのDNSサーバを例えばGoogleの(8.8.8.8)に設定しそしてリダイレクトされたドメイン名をpingすることによってこの理論をテストすることができる。

7
Ben N

Jonnosにその答えを追加したかっただけです

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

私の(そして最も可能性の高い)あなたのルーターがこれをどのようにするかです。あなたのルーターはおそらくdnsmasqでasuswrtを実行しています。あなたは(少なくともtelnet経由で)シェルアクセスを持ち、自分自身を探すことができます。

1
ElDiabolo