Golang (Go 言語とも呼ばれる) は、大規模で信頼性の高いソフトウェアの構築に適したオープンソース プログラミング言語です。 Golang は 2007 年に Google によって開発され、最も人気のあるプログラミング言語の 1 つになりました。分散プログラミングやネットワークプログラミングだけでなく、さまざまなサーバーサイドやインターネットアプリケーションの分野でも広く使用されています。
この記事では、Golang を使用してネットワーク カードをクエリする方法を紹介します。
Golang では、net パッケージの機能を利用することで、ネットワークへのアクセスや操作が簡単に行えます。具体的には、ネットワーク インターフェイスにクエリを実行することでネットワーク カード情報を取得できます。次のコードは、ホスト上のすべてのネットワーク カード インターフェイスを取得する方法を示しています。
package main import ( "fmt" "net" ) func main() { ifaces, err := net.Interfaces() if err != nil { fmt.Println("get interfaces err:", err) return } for _, iface := range ifaces { fmt.Printf("Interface:%v\n", iface.Name) addrs, err := iface.Addrs() if err != nil { fmt.Println("get addrs err:", err) continue } for _, addr := range addrs { fmt.Printf("\tIP Address:%v\n", addr) } } }
このコードでは、最初に net.Interfaces() 関数を呼び出してホスト上のすべてのネットワーク インターフェイスを取得し、各ネットワークをループします。加工用のカードです。ネットワーク カードごとに、Addrs() 関数を呼び出して、ネットワーク カードに関連付けられた IP アドレスを取得し、関連情報を出力します。
上記のコードでは、iface.Name を使用してネットワーク カード インターフェイスの名前を取得します。 Linux システムでは、この名前は通常、「eth0」、「wlan0」などの複数の部分で構成されます。この名前の意味は次のとおりです。
package main import ( "fmt" "net" ) func getMacAddress(iface net.Interface) net.HardwareAddr { addr, err := iface.Addrs() if err != nil { fmt.Println("get addrs err:", err) return nil } for _, addr := range addr { ipAddr, ok := addr.(*net.IPNet) if !ok { continue } if ipAddr.IP.IsLinkLocalUnicast() { return iface.HardwareAddr } } return nil } func main() { ifaces, err := net.Interfaces() if err != nil { fmt.Println("get interfaces err:", err) return } for _, iface := range ifaces { fmt.Printf("Interface:%v\n", iface.Name) fmt.Printf("\tMAC Address:%v\n", getMacAddress(iface)) } }
以上がGolang を使用してネットワーク カードをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。