web-dev-qa-db-ja.com

Webリクエストを送信せずに自分の外部IPアドレスを確認することはできますか?

あなたの接続がNATされている場合、アウトバウンドWebリクエストをすることなくあなたの外部IPアドレスを見ることは可能ですか?

どのOS(Windows、Linuxなど)でも構いません。

20
Axel Persinger

コンピュータがNATの背後にある場合は、ルータの外部IPアドレスを確認することは可能ですが、ルータへの管理アクセスが必要です。

ルーターはあなたの外部IPアドレスを知っているので、その設定ページにアクセスすることであなたはそのIPアドレスを見つけることができます。この方法は、Webブラウザ以外の特別なツールを必要としません。

情報を取得するためのツールを必要とするその他のプロトコル

ユーザー@ dirktによるテストでは、すべての方法がIPv4でのみ機能します(おそらくPCPを除く)。

23
harrymc

いくつかのNATで機能する方法はいくつかありますが、どこでも機能することが保証されているものは何もありません。

私は、uPnP、NAT-PMP、およびPCP(ユニバーサルプラグアンドプレイ、NATポートマッピングプロトコル、およびポート制御プロトコル)のすべてに、準拠したNATゲート​​ウェイに問い合わせる方法があると思います。パブリックアドレスはですが、すべてのNATがこれらのプロトコルをサポートしているわけではありません。サポートは、企業やキャリアグレードの[NAT]ソリューションよりもホームゲートウェイルータでより一般的です。

NATの背後にいる場合、トラフィックがどのパブリックIPアドレスに変換されているのかを確認する唯一の確実な方法は、NATのようにレポートを送信するパブリックホストに発信トラフィックを送信することです。翻訳されません、あなたのトラフィックがどのアドレスから来たように見えますか。 Webベースのサービスを使用することは1つの方法ですが、クラウドサーバーインスタンスにSSH接続して、sshdがどこからあなたのSSHセッションから来たのかを見ることによってそれを行うこともできます。

11
Spiff

あなたはDNSリクエストを使うことができます、私はそれが「ウェブリクエスト」の範疇に入らないと信じます:

nslookup myip.opendns.com resolver1.opendns.com
8
Mehrdad

既存の回答に1点追加したいと思います。

それはまたネットワークの複雑さにも依存します。お使いのコンピュータが複数の外部IPアドレスを持つネットワーク内にあり、回線上のどこかのルータが何らかの基準に基づいてトラフィックをインターネットに送信している可能性があります。たとえば、宛先IPアドレス、時刻などです。 1つのアップリンクチャネルが夜間や他の理由のために安くなるように).

それで、完全にするために、「外部IPアドレス」の概念はあなたのアドレスが外部であることを宛先ポイントを定義することを必要とするかもしれません。

以下の例では、Router #2はNATを実行してどちらかのアップリンクにトラフィックを送信することができ、受信側HostはHostに対して異なる外部IPアドレスを見ることができます。

または、特定の宛先(たとえばHost1.example.com)が常にUplink Aを介してルーティングし、ホストのHost2.example.comが常にUplink Bを介してルーティングすることも考えられます。そのため、これらのホストから見た外部IPアドレスは異なり、Uplink AUplink Bは異なるISPです。

   Uplink A                                  Uplink B
-------------                             -------------
      |                                         |
      |                                         |
      |     192.168.1.1         192.168.50.50   |
      |               -----------               |
      |---------------|Router #2|---------------|
                      -----------
                           |  192.168.100.1
                           |
                           |  192.168.100.2
                      -----------
                      |Router #1|
                      -----------
                           |  192.168.200.1
                           |
                           |  192.168.200.2
                      -----------
                      |   Host  |
                      -----------

そのため、トラフィックを送信すると、より信頼性の高い結果が得られます。

7
VL-80

HTTPではなくDNSを使用できます。例えば、あなたは使用することができます:

Dig +short TXT o-o.myaddr.l.google.com

これはあなたが使用しているDNSサーバーのユニキャストアドレスを表示します、そしてそれがEDNSをサポートしているならそれはあなたのIPアドレスも表示します、おそらく切り捨てられますが。

完全なIPアドレスを取得するには、ローカルのDNSサーバーを経由せずに上記のリクエストをns {1,2,3,4} .google.comに直接送信します。

Dig +short TXT o-o.myaddr.l.google.com @ns3.google.com

特定のプロトコルバージョンのIPアドレスを確認したい場合は、-6および-4を使用できます。

Dig -6 +short TXT o-o.myaddr.l.google.com @ns3.google.com
Dig -4 +short TXT o-o.myaddr.l.google.com @ns3.google.com

お望みならOpenDNSを使うこともできます。 OpenDNSはこれにTXTレコードを使用せず、AレコードとAAAAレコードを使用するので、探しているプロトコルバージョンを指定する必要があります。

Dig -6 +short AAAA myip.opendns.com @resolver2.opendns.com
Dig -4 +short A myip.opendns.com @resolver2.opendns.com

トラフィックがプロトコル変換を通過する場合、異なる結果になるか、まったく結果が得られない可能性があります。 NAT64の背後にあるマシンからのテスト上記のコマンドで私のIPv6アドレスを見ることができましたが、NAT64のIPv4アドレスは見ることができませんでした。

この答えはこれらの情報源に基づいています 123 と私自身のちょっとした調査。

4
kasperd

Webは一般的にHTTPを参照します、それがあなたの質問の意味であれば、例えば、あなたは "Session"を表すSTUN( Wikipedia Article )を使用することができます。 NATのための走査ユーティリティ "#:。

コメントで強調表示されているように、複数の外部IPがある可能性があります。また、ワイヤレス接続が一般的になってきているので(4Gのこと)、ルーターによって報告されたIPアドレスが公のものではないことも不可能ではありません。私は、ISPがローカルルーターにプライベートIPを与え、後でネットワークを離れるときに1:1がパブリックIPに変換されるような、ある国では光ファイバー接続についてのそのシナリオにも会いました。

あなたの質問が「私のネットワークからパケットを送信しなくても私のパブリックIPを見つけることができるか」であるならば、あなたはあなたの文脈の中で大丈夫ですが、100%証明の解決策はありません。

2
user1532080