程式碼拉取完成,頁面將自動刷新
package kk_net
import (
"gitee.com/cruvie/kk_go_kit/kk_stage"
"log/slog"
"net"
)
// GetLocalIP 获取本机IPV4 地址
func GetLocalIP(stage *kk_stage.Stage) (ip string) {
//使用了 net.InterfaceAddrs() 函数来获取当前主机上的网络接口和相应的 IP 地址。
//过滤掉回环地址和 IPv6 地址,只留下 IPv4 地址。
addresses, err := net.InterfaceAddrs()
if err != nil {
slog.Error("GetLocalIP error", kk_stage.NewLog(stage).Error(err).Args()...)
return ip
}
for _, address := range addresses {
if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
if ipNet.IP.To4() != nil {
//slog.Info(ipNet.IP.String())
ip = ipNet.IP.String()
break
}
}
}
if ip == "" {
slog.Error("GetLocalIP error", kk_stage.NewLog(stage).Error(err).
Any("addresses", addresses).Args()...)
}
return ip
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。