Go は、さまざまなネットワーク プログラミングのニーズを満たす強力なネットワーク プログラミング ライブラリを備えたクロスプラットフォーム プログラミング言語です。実際のアプリケーションでは、ネットワーク カードの IP アドレスや MAC アドレスなどの設定など、ネットワーク インターフェイスを制御する必要があることがよくあります。この記事ではGo言語を使ったネットワークカードの設定方法を紹介します。
Go 言語では、net.Interface
構造体を通じてシステム内のすべてのネットワーク カード情報を取得できます。 。以下は、システム内のすべてのネットワーク カードの名前と MAC アドレスを出力する簡単なサンプル コードです。
package main import ( "fmt" "net" ) func main() { interfaces, err := net.Interfaces() if err != nil { panic(err) } for _, itf := range interfaces { fmt.Printf("Name: %s\n", itf.Name) fmt.Printf("MAC address: %s\n", itf.HardwareAddr) } }
ネットワーク カードの IP アドレスを設定するには、# で InterfaceAddrs()
と # を使用する必要があります。 ##net ライブラリ ##ParseCIDR()
メソッド。以下は、ネットワーク カード en0 の IP アドレスを 192.168.1.100/24 に設定する簡単なコード例です。 <pre class="brush:php;toolbar:false">package main
import (
"fmt"
"net"
)
func main() {
iface, err := net.InterfaceByName("en0")
if err != nil {
panic(err)
}
addr, err := net.ParseCIDR("192.168.1.100/24")
if err != nil {
panic(err)
}
err = iface.Addrs()
if err != nil {
panic(err)
}
err = netlink.AddrAdd(iface, addr)
if err != nil {
panic(err)
}
fmt.Println("IP address set successfully")
}</pre>
メソッドを使用する必要があります。 netlink
ライブラリ。以下は、ネットワーク カード en0 の MAC アドレスを 00:11:22:33:44:55 に設定する簡単なコード例です。 <pre class="brush:php;toolbar:false">package main
import (
"fmt"
"net"
"github.com/vishvananda/netlink"
)
func main() {
iface, err := net.InterfaceByName("en0")
if err != nil {
panic(err)
}
link, err := netlink.LinkByName(iface.Name)
if err != nil {
panic(err)
}
macAddr, err := net.ParseMAC("00:11:22:33:44:55")
if err != nil {
panic(err)
}
err = netlink.LinkSetHardwareAddr(link, macAddr)
if err != nil {
panic(err)
}
fmt.Println("MAC address set successfully")
}</pre>
以上がGo 言語でネットワーク カードをセットアップする方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。