获取本机以太网IP地址
package main
import (
"fmt"
"net"
)
func main() {
interfaces, err := net.Interfaces()
if err != nil {
fmt.Println("Failed to get network interfaces:", err)
return
}
for _, iface := range interfaces {
if iface.Flags&net.FlagUp != 0 && iface.Flags&net.FlagLoopback == 0 {
addrs, err := iface.Addrs()
if err != nil {
fmt.Printf("Failed to get addresses for interface %s: %s\n", iface.Name, err)
continue
}
for _, addr := range addrs {
ipNet, ok := addr.(*net.IPNet)
if ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
fmt.Println("Ethernet IP address:", ipNet.IP.String())
}
}
}
}
}
在上面的代码中,首先使用net.Interfaces()函数获取所有的网络接口信息。然后遍历每个网络接口,检查其状态是否为net.FlagUp(即接口已启用)且不是回环接口(net.FlagLoopback)。对于满足条件的接口,使用iface.Addrs()函数获取该接口的所有地址。然后遍历每个地址,判断是否为IPv4地址,并将其打印出来。
如何判断当前系统是windows还是linux
package main
import (
"fmt"
"runtime"
)
func main() {
if runtime.GOOS == "windows" {
fmt.Println("当前系统是Windows")
} else if runtime.GOOS == "linux" {
fmt.Println("当前系统是Linux")
} else {
fmt.Println("当前系统是其他操作系统")
}
}
在上面的代码中,使用runtime.GOOS变量来获取当前系统的操作系统类型。如果runtime.GOOS的值是windows,则表示当前系统是Windows。如果runtime.GOOS的值是linux,则表示当前系统是Linux。否则,表示当前系统是其他操作系统。
这段Go代码主要用于获取本机的以太网IP地址,它遍历所有网络接口,筛选出活动且非回环的接口,然后提取IPv4地址。同时,代码还展示了如何利用`runtime.GOOS`判断当前运行环境是Windows还是Linux。
1411

被折叠的 条评论
为什么被折叠?



