1 Star 0 Fork 0

Cruvie Kang / kk_go_kit

加入 Gitee
與超過 1200 萬 開發者一起發現、參與優秀開源項目,私有倉庫也完全免費 :)
免費加入
克隆/下載
local.go 863 Bytes
一鍵複製 編輯 原始數據 按行查看 歷史
Cruvie 提交於 2024-01-26 18:01 . update log
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
}
1
https://gitee.com/cruvie/kk_go_kit.git
git@gitee.com:cruvie/kk_go_kit.git
cruvie
kk_go_kit
kk_go_kit
2c2b435ab572

搜索幫助