这篇文章上次修改于 742 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
Golang third library
产品:
静态站点:gohugoio/hugo Public
文件同步:syncthing/syncthing Public
反向代理:fatedier/frp
在线终端:yudai/gotty
本地界面:fyne-io/fyne
在线文件:filebrowser/filebrowser
本地代理:v2ray/v2ray-core
发送文件:schollz/croc
坚守进程:ochinchina/supervisord
项目:
miekg/dns
jeessy2/ddns-go
fsnotify/fsnotify
drakkan/sftpgo
研发:
GoAdminGroup/go-admin
go-admin-team/go-admin
flipped-aurora/gin-vue-admin
qax-os/excelize
grpc/grpc-go
ethereum/go-ethereum Public
go-kit/kit
derailed/k9s
Golang functions
//export GetNetIP
func GetNetIP() string {
if ifaces, err := net.Interfaces(); err == nil {
for _, iface := range ifaces {
if iface.Flags&net.FlagUp == 0 || iface.Flags&net.FlagLoopback != 0 {
continue // interface down // loopback interface
}
if addrs, err := iface.Addrs(); err == nil {
for _, addr := range addrs {
switch v := addr.(type) {
case *net.IPAddr:
if v.IP.IsGlobalUnicast() && nil != v.IP.To4() {
return v.IP.String() // only pick first net card
}
case *net.IPNet:
if v.IP.IsGlobalUnicast() && nil != v.IP.To4() {
return v.IP.String() // only pick first net card
}
}
} // end of for addrs
}
} // end of for iface
} // end of net.Interfaces
return net.IPv4zero.String()
}
//export GetMapIP
func GetMapIP() map[string]string {
m := map[string]string{}
if ifaces, err := net.Interfaces(); err == nil {
for _, iface := range ifaces {
if iface.Flags&net.FlagUp == 0 || iface.Flags&net.FlagLoopback != 0 {
continue // interface down // loopback interface
}
if addrs, err := iface.Addrs(); err == nil {
for _, addr := range addrs {
switch v := addr.(type) {
case *net.IPAddr:
if v.IP.IsGlobalUnicast() && nil != v.IP.To4() {
m[iface.Name] = v.IP.String() // only pick last net card
}
case *net.IPNet:
if v.IP.IsGlobalUnicast() && nil != v.IP.To4() {
m[iface.Name] = v.IP.String() // only pick last net card
}
}
} // end of for addrs
}
} // end of for iface
} // end of net.Interfaces
return m
}
没有评论
博主关闭了评论...