这篇文章上次修改于 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 }