GoLang 常用功能模块整理

获取本机以太网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。否则,表示当前系统是其他操作系统。

你可能感兴趣的:(golang,开发语言,后端)