Rumah > pembangunan bahagian belakang > Golang > Analisis ringkas tentang cara menyediakan kad rangkaian dalam bahasa Go

Analisis ringkas tentang cara menyediakan kad rangkaian dalam bahasa Go

PHPz
Lepaskan: 2023-04-11 11:00:03
asal
1370 orang telah melayarinya

Go ialah bahasa pengaturcaraan merentas platform dengan perpustakaan pengaturcaraan rangkaian yang berkuasa yang boleh memenuhi pelbagai keperluan pengaturcaraan rangkaian. Dalam aplikasi praktikal, kita sering perlu mengawal antara muka rangkaian, seperti menetapkan alamat IP kad rangkaian, alamat MAC, dsb. Artikel ini akan memperkenalkan cara menyediakan kad rangkaian menggunakan bahasa Go.

  1. Dapatkan senarai kad rangkaian

Dalam bahasa Go, anda boleh mendapatkan semua maklumat kad rangkaian dalam sistem melalui struktur net.Interface. Di bawah ialah contoh kod ringkas yang mencetak semua nama kad rangkaian dan alamat MAC dalam sistem.

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)
    }
}
Salin selepas log masuk
  1. Tetapkan alamat IP kad rangkaian

Untuk menetapkan alamat IP kad rangkaian, anda perlu menggunakan kaedah net dan InterfaceAddrs() dalam ParseCIDR() perpustakaan. Di bawah ialah contoh kod mudah untuk menetapkan alamat IP kad rangkaian en0 kepada 192.168.1.100/24.

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")
}
Salin selepas log masuk
  1. Tetapkan alamat MAC kad rangkaian

Untuk menetapkan alamat MAC kad rangkaian, anda perlu menggunakan kaedah netlink dalam pustaka SetHardwareAddr() . Di bawah ialah contoh kod mudah untuk menetapkan alamat MAC kad rangkaian en0 kepada 00:11:22:33:44:55.

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")
}
Salin selepas log masuk
  1. Kesimpulan

Melalui contoh kod di atas, kita dapat melihat bahawa menetapkan alamat IP kad rangkaian dan alamat MAC dalam bahasa Go adalah sangat mudah. Ini menggambarkan sepenuhnya keupayaan pengaturcaraan rangkaian yang berkuasa bagi bahasa Go dan membantu pembangun mengawal dan mengurus antara muka rangkaian dengan lebih mudah.

Atas ialah kandungan terperinci Analisis ringkas tentang cara menyediakan kad rangkaian dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan