リーリー
これは、通常のインターフェイスの IP アドレスを取得する方法です:リーリー
上記にlo:0 を渡すと、
net.interfacebyname は次のエラーで失敗します:
route ip net: no such network Interface。
https://www.php.cn/link/5c528e25e1fdeaf9d8160dc24dbf4d60を使用してIPアドレスとラベルを取得できます。
これは、Linux ユーザー空間プログラムがネットリンク インターフェイスを介してカーネルと通信できるようにするライブラリです。インターフェイス、ルートなどを構成したり、情報を取得したりするために使用できます。エイリアスの概念は Linux 2.0 で登場しました。エイリアスは、ifconfig の実行時にインターフェイス名にコロンと文字列を追加することによって形成されます。 Linux 2.2 でインターフェイスごとに複数のアドレスを持つ可能性が導入されて以来、この概念は非推奨になりました。
https://www.php.cn/link/96b8294326cb6595573cf2689f3f6dda を参照してください。
それでも、下位互換性があり、ネットリンク インターフェイスを介して、インターフェイス名 (エイリアスを含む) を表す ifa_label を含む属性を取得できます。質問には明示的にエイリアスが含まれているため、インターフェイス名ごとに 1 つの IP アドレスが設定されていると仮定します。ただし、もちろん完全な
netlinkrouteattr データが返されるため、必要に応じてこれを簡単に追加して、インターフェイスごとに複数の IP アドレスを返すことができます。これで両方のケースがカバーされます。
リーリー
ubuntu でテストすると次の結果が得られます:リーリー
これはまだ必要な詳細ではないかもしれません。しかし、それは正しい方向への第一歩となる可能性があります。以上が仮想ネットワークインターフェースのIPアドレスを取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。