发布时间:2024-11-05 16:39:26
下面的代码演示了如何使用`net.Interfaces()`函数来获取网卡信息:
package main
import (
"fmt"
"net"
)
func main() {
interfaces, err := net.Interfaces()
if err != nil {
fmt.Println("Error:", err)
return
}
for _, iface := range interfaces {
fmt.Println("Index:", iface.Index)
fmt.Println("Name:", iface.Name)
fmt.Println("MTU:", iface.MTU)
fmt.Println("HardwareAddr:", iface.HardwareAddr)
addrs, err := iface.Addrs()
if err != nil {
fmt.Println("Error:", err)
continue
}
for _, addr := range addrs {
fmt.Println("Address:", addr)
}
fmt.Println()
}
}
该程序会遍历所有的网络接口,并输出每个接口的索引、名称、MTU和硬件地址。同时,我们还调用了`iface.Addrs()`函数来获取该接口的IP地址,并进行输出。
下面的代码演示了如何使用gopacket库来获取网卡信息:
package main
import (
"fmt"
"github.com/google/gopacket/pcap"
)
func main() {
devices, err := pcap.FindAllDevs()
if err != nil {
fmt.Println("Error:", err)
return
}
for _, device := range devices {
fmt.Println("Name:", device.Name)
fmt.Println("Description:", device.Description)
fmt.Println("Addresses:")
for _, address := range device.Addresses {
fmt.Println("- IP:", address.IP)
fmt.Println(" Netmask:", address.Netmask)
}
fmt.Println()
}
}
该程序会使用`pcap.FindAllDevs()`函数来获取所有的网络设备(网卡)信息。然后,我们遍历每个设备并输出设备的名称、描述以及对应的IP地址和子网掩码。