ホームページ  >  記事  >  バックエンド開発  >  Golang を使用して Wi-Fi IP アドレスを取得するにはどうすればよいですか?

Golang を使用して Wi-Fi IP アドレスを取得するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-09 14:33:18681ブラウズ

如何使用 Golang 获取我的 wifi IP 地址?

php エディタ Xiaoxin は、Golang を使用して独自の Wi-Fi IP アドレスを取得する方法を紹介します。 Golang は、ネットワーク関連のタスクを処理するための便利な方法を多数提供する、効率的で簡潔なプログラミング言語です。 Wi-Fi IP アドレスを取得するには、Golang の net パッケージと os/exec パッケージを使用していくつかのシステム コマンドを実行します。いくつかの簡単なコードを使用して、接続している Wi-Fi の IP アドレスを取得できます。具体的な導入プロセスを見てみましょう!

質問内容

func getLocalIP() ([]string, error) {
    addrs, err := net.InterfaceAddrs()
    if err != nil {
        return nil, err
    }
    IPs := make([]string, 0)
    for _, a := range addrs {
        if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                IPs = append(IPs, ipNet.IP.To4().String())
            }
        }
    }
    return IPs, nil
}
func TestGetLocalIP() {
    addrs, _ := getLocalIP()
    for _, a := range addrs {
        fmt.Println(a)
    }
}

これを使用しましたが、IP アドレスのリストが表示されました。

Wi-Fi のローカル アドレスを取得したいだけですが、どうすればよいですか?

解決策

次の 2 つの情報のうち少なくとも 1 つを知っておく必要があります:

  1. 正しいインターフェースの名前 (たとえば、Mac では通常 en0 ですが、ymmv です)
  2. マスク長を含むワイヤレス ネットワーク アドレス - 192.168.0.0/16 や 192.168.0.0/24 などのアドレスが一般的ですが、これを事前に把握しておく必要があります。

インターフェース名だけがわかっている場合:

リーリー

より簡単:

リーリー

ワイヤレスネットワークのネットワークアドレスがわかっている場合

リーリー

どの方法を選択するか

特定の名前のインターフェイスに依存すると、一般に移植性が失われます。したがって、これを自分のワークステーション上で実行したいだけであると想定していますが、これが複数のホスト間で実行する必要があるものである場合は、少なくとも正しいネットワーク アドレスを照合することから始める必要があるでしょう。他にもトリックがあります。各ホストに製造元 xxx の NIC が搭載されているサーバー ファームで実行することがわかっている場合は、MAC アドレスを検索して、その製造元のものかどうかを確認できます。これを試すことができます ここ###。他のフィルターも使用できますが、これらは個人的な使用例に適しています。

以上がGolang を使用して Wi-Fi IP アドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。