最近分享的资源
暂无
最近发布的项目
暂无
最近的评论
-
评论了面试题 Go每日一题(73)赋值、defer、ret
-
评论了主题 谁有用go语言修改本地网卡mac的源代码呢package main import ( "fmt" "os" "syscall" "unsafe" ) // 定义 ifreq 结构体 type ifreq struct { Name [16]byte Addr [8]byte } func main() { if len(os.Args) != 3 { fmt.Println("用法: sudo go run main.go <网卡名> <新MAC地址>") fmt.Println("例如: sudo go run main.go eth0 00:11:22:33:44:55") return } iface := os.Args[1] mac := os.Args[2] fd, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_IP) if err != nil { fmt.Println("创建Socket失败:", err) return } defer syscall.Close(fd) var ifr ifreq copy(ifr.Name[:], iface) // 解析MAC地址 var hwaddr [6]byte _, err = fmt.Sscanf(mac, "%x:%x:%x:%x:%x:%x", &hwaddr[0], &hwaddr[1], &hwaddr[2], &hwaddr[3], &hwaddr[4], &hwaddr[5]) if err != nil { fmt.Println("MAC地址格式错误:", err) return } // SIOCSIFHWADDR = 0x8924 // 先把MAC填到ifreq的Addr字段 ifr.Addr[0] = syscall.ARPHRD_ETHER copy(ifr.Addr[2:], hwaddr[:]) _, _, errno := syscall.Syscall( syscall.SYS_IOCTL, uintptr(fd), uintptr(0x8924), // SIOCSIFHWADDR uintptr(unsafe.Pointer(&ifr)), ) if errno != 0 { fmt.Println("设置MAC地址失败:", errno) return } fmt.Println("MAC地址修改成功") }
-
评论了面试题 Go每日一题(62)答案是C
-
评论了主题 一道有争议的题争议个蛋,楼上说的对
-
评论了面试题 Go每日一题(98)