mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-11 17:54:20 +01:00
🎨 Improve the network serve address list https://github.com/siyuan-note/siyuan/issues/14943
Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
parent
88e1f0312c
commit
8cbf2897bb
2 changed files with 59 additions and 69 deletions
|
|
@ -19,7 +19,6 @@ package util
|
|||
import (
|
||||
"bytes"
|
||||
"io/fs"
|
||||
"net"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
|
|
@ -74,74 +73,7 @@ func GetLocalIPs() (ret []string) {
|
|||
}
|
||||
|
||||
ret = []string{}
|
||||
addrs, err := net.InterfaceAddrs()
|
||||
if err != nil {
|
||||
logging.LogWarnf("get interface addresses failed: %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
IPv4Nets := []*net.IPNet{}
|
||||
IPv6Nets := []*net.IPNet{}
|
||||
for _, addr := range addrs {
|
||||
if networkIp, ok := addr.(*net.IPNet); ok && networkIp.IP.String() != "<nil>" {
|
||||
if networkIp.IP.To4() != nil {
|
||||
IPv4Nets = append(IPv4Nets, networkIp)
|
||||
} else if networkIp.IP.To16() != nil {
|
||||
IPv6Nets = append(IPv6Nets, networkIp)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// loopback address
|
||||
for _, net := range IPv4Nets {
|
||||
if net.IP.IsLoopback() {
|
||||
ret = append(ret, net.IP.String())
|
||||
}
|
||||
}
|
||||
// private address
|
||||
for _, net := range IPv4Nets {
|
||||
if net.IP.IsPrivate() {
|
||||
ret = append(ret, net.IP.String())
|
||||
}
|
||||
}
|
||||
// IPv4 private address
|
||||
for _, net := range IPv4Nets {
|
||||
if net.IP.IsGlobalUnicast() {
|
||||
ret = append(ret, net.IP.String())
|
||||
}
|
||||
}
|
||||
// link-local unicast address
|
||||
for _, net := range IPv4Nets {
|
||||
if net.IP.IsLinkLocalUnicast() {
|
||||
ret = append(ret, net.IP.String())
|
||||
}
|
||||
}
|
||||
|
||||
// loopback address
|
||||
for _, net := range IPv6Nets {
|
||||
if net.IP.IsLoopback() {
|
||||
ret = append(ret, "["+net.IP.String()+"]")
|
||||
}
|
||||
}
|
||||
// private address
|
||||
for _, net := range IPv6Nets {
|
||||
if net.IP.IsPrivate() {
|
||||
ret = append(ret, "["+net.IP.String()+"]")
|
||||
}
|
||||
}
|
||||
// IPv6 private address
|
||||
for _, net := range IPv6Nets {
|
||||
if net.IP.IsGlobalUnicast() {
|
||||
ret = append(ret, "["+net.IP.String()+"]")
|
||||
}
|
||||
}
|
||||
// link-local unicast address
|
||||
for _, net := range IPv6Nets {
|
||||
if net.IP.IsLinkLocalUnicast() {
|
||||
ret = append(ret, "["+net.IP.String()+"]")
|
||||
}
|
||||
}
|
||||
|
||||
ret = append(ret, GetPrivateIPv4s()...)
|
||||
ret = append(ret, LocalHost)
|
||||
ret = gulu.Str.RemoveDuplicatedElem(ret)
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue