Go 言語 (golang) は、さまざまなオペレーティング システムで実行できるオープン ソース プログラミング言語です。ネットワーク プログラミングを行う場合、重要な手順の 1 つは静的 IP アドレスを設定することです。これにより、ネットワーク通信の安定性とセキュリティが向上します。この記事では、golangで静的IPアドレスを設定する方法を紹介します。
ネットワーク プログラミングで golang を使用する場合、ネットワーク カード インターフェイス名を取得する必要があります。まず、net パッケージをインポートし、net.Interfaces() 関数を使用してデバイス情報を取得する必要があります。次に、以下に示すように、デバイスをトラバースしてデバイスの名前を取得します。
package main import ( "fmt" "net" ) func main() { ifs, err := net.Interfaces() if err != nil { fmt.Println("Error: ", err) } for _, i := range ifs { fmt.Println(i.Name) } }
上記のコードを実行すると、コンピューター上で使用可能なすべてのネットワーク カード インターフェイス名が出力されます。例:
en0 en1 lo0
Golang で静的 IP アドレスを設定するには、net パッケージの netlink ライブラリを使用する必要があります。このライブラリは、IP アドレスを設定するためのメソッドを提供します。ネットワークカードの。ネットリンク ライブラリをインポートし、SetLinkIP 関数を使用して IP アドレスを設定する必要があります。たとえば、IP アドレスを 192.168.0.100、マスクを 255.255.255.0、ゲートウェイを 192.168.0.1 に設定できます。コードは次のとおりです:
package main import ( "fmt" "net" "github.com/vishvananda/netlink" ) func main() { link, err := netlink.LinkByName("en0") if err != nil { fmt.Println("Error: ", err) } addr, err := netlink.ParseAddr("192.168.0.100/24") if err != nil { fmt.Println("Error: ", err) } netlink.AddrReplace(link, addr) route := netlink.Route{ LinkIndex: link.Attrs().Index, Gw: net.ParseIP("192.168.0.1"), } netlink.RouteReplace(&route) }
上記のコードを実行した後、静的設定が行われます。ネットワークカードen0のIPアドレスに設定されます。
Golang プログラムを使用して、IP アドレスが正常に設定されているかどうかを確認します。システムコマンド ifconfig を実行します。次のコードは、ifconfig を実行して、指定されたネットワーク カードの IP アドレスを取得する方法を示しています。
package main import ( "fmt" "os/exec" "strings" ) func main() { cmd := exec.Command("ifconfig", "en0") data, err := cmd.Output() if err != nil { fmt.Println("Error: ", err) } output := string(data) scanner := bufio.NewScanner(strings.NewReader(output)) for scanner.Scan() { line := scanner.Text() if strings.Contains(line, "inet ") { fields := strings.Fields(line) fmt.Println("IP address: ", fields[1]) } } }
上記のコードを実行すると、コンピューターのネットワーク カード en0 の IP アドレスが出力されます。
要約: golang の net パッケージと netlink ライブラリを使用すると、ネットワーク カードの静的 IP アドレスを簡単に設定でき、アプリケーションの信頼性とセキュリティが向上します。
以上がgolangで静的IPアドレスを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。