ifconfigはコンピュータの外部IPアドレスをどのように見つけますか?

ifconfigはコンピュータの外部IPアドレスをどのように見つけますか?

通常、特定のコンピュータの外部IPアドレスを確認するには、curl外部Webサイトを使用して自分のIPアドレスが何であるかを知らせる応答を送信します。ところで、ifconfig私の外部IPアドレスもリストされていることがわかりました。

コンピュータのIPアドレスを確認するために要求を送信できる「標準」ソースがネットワーク上にありますか、ifconfigまたはコンピュータのIPアドレスを見つける他の方法はありますか?

答え1

ifconfigネットワークインターフェイスの現在の構成を設定/インポートするためのツールにすぎません。実行すると、この情報が返されます。これを使用して、すべてのデバイスまたは個々のインターフェイスを照会できます。

はい

別々のデバイス。

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6119 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8725156 (8.3 MiB)  TX bytes:8725156 (8.3 MiB)

すべての機器。

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:20 Memory:f2600000-f2620000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:45792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45792 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7548353 (7.1 MiB)  TX bytes:7548353 (7.1 MiB)

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1254848 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1408361 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:699671476 (667.2 MiB)  TX bytes:347243164 (331.1 MiB)

/プロセス/ネットワーク

各ネットワークインタフェースで操作できる情報は、ifconfigLinuxカーネルのファイルシステムに表示されます/proc/net。マニュアルページを参照すると、ifconfig次のセクションが表示されます。

FILES
       /proc/net/socket
       /proc/net/dev
       /proc/net/if_inet6

このファイルにはいくつかのネットワーク情報が含まれています。以下に/proc/net別のファイルがあります。

ifconfig、ipの代替

ipネットワーク情報を操作するために使用できる代替ツールがあります。

$ ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

インターネット情報

IP アドレスなどの情報は、静的または動的に設定できます。静的に設定するときは、通常このツールを使用して、またはifconfig同じ特定のネットワークデバイスのIPアドレスを設定します。eth0wlan0

もう1つの方法は、コンピュータが接続できるネットワーク上のサーバーであるDHCPというサービスを使用してIP情報を動的に設定し、DHCPサーバーにIPアドレスを割り当てるように要求することです。

どちらの場合も、ネットワーク情報が識別されると以下からアクセスできます/proc/net/*

答え2

外部アドレスを設定するのが作業ですifconfig。アドレスだけが書き込まれたカーネルデータ構造を読み込みます。コンピュータがネットワークから切断された場合でも機能します。 ifconfigネットワークはコンピュータをネットワークから切り離すことで完全に設定できます。正しく設定すると、ネットワークケーブルが接続されている間にネットワークが起動します。

ループバックアドレス[127.0.0.1]は、ソフトウェアデバイスに設定されており、コンピュータにネットワークカードが取り付けられていない場合でも存在します。これにより、TCPやUDPなどのプロトコルを使用してローカル接続が可能になります。これは、ローカル接続に特別なサービスを必要としないため、ソフトウェア開発を簡素化します。

編集:ifconfigすでに使用されているIPアドレスを設定しているかどうかはわかりません。ネットワークインターフェイスがインターネットに接続されている場合、ARPネットワークはそのアドレスが使用中であることを確認できます。これは必須機能ではなく、複数のコンピュータがifconfig同じIPアドレスを持つことはまれではありません。他のソフトウェアで設定されたアドレスが正しくないと判断した場合、ifconfig一般的な応答は警告メッセージを発行することです。

ifconfig誤ったネットワーク用にデバイスを設定することも可能です。提供された設定がifconfig正しいことを確認するのはユーザーの責任です。同じ機能を実行し、ifconfig同じ制限を適用する他のツールもあります。

プライベートネットワークには3つのIPアドレス範囲が定義されています。それぞれ 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 です。これらのアドレス範囲でコンピュータを設定するのが一般的です。この場合、そのIPアドレスはインターネットの「パブリック」IPアドレスとは異なります。 「パブリック」IPアドレスは、プライベートネットワーク上のコンピュータがインターネットと通信できるようにネットワークアドレス変換(NAT)を実行するインターネットに接続されているデバイスに属します。ホームネットワークのコンピュータには、ほとんど常にプライベートネットワークアドレスがあります。ほとんどのホームルータは、ローカル(プライベート)ネットワーク上のコンピュータに対してNATを実行します。

答え3

NATの背後にある場合、ifconfigは「外部」IPアドレスを表示できません。 DHCPサーバーがネットワークインターフェースに提供したアドレスのみを構成します。外部IPアドレスがわかっている場合は、次のものを使用する必要があります。https://ipof.in/txt

関連情報