Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
16685ee743
3 changed files with 69 additions and 10 deletions
|
@ -80,7 +80,8 @@ export const about = {
|
|||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.about2}
|
||||
<div class="b3-label__text">${window.siyuan.languages.about3.replace("${port}", location.port)}</div>
|
||||
<span class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.join("</code> <code class='fn__code'>")}</code></span>
|
||||
<div class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.filter(ip => !(ip.startsWith("[") && ip.endsWith("]"))).join("</code> <code class='fn__code'>")}</code></div>
|
||||
<div class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.filter(ip => (ip.startsWith("[") && ip.endsWith("]"))).join("</code> <code class='fn__code'>")}</code></div>
|
||||
</div>
|
||||
<div class="fn__space"></div>
|
||||
<button data-type="open" data-url="http://${window.siyuan.config.system.networkServe ? window.siyuan.config.localIPs[0] : "127.0.0.1"}:${location.port}" class="b3-button b3-button--outline fn__size200 fn__flex-center">
|
||||
|
|
|
@ -29,12 +29,13 @@ export const initAbout = () => {
|
|||
<input class="b3-switch fn__flex-center" id="networkServe" type="checkbox"${window.siyuan.config.system.networkServe ? " checked" : ""}>
|
||||
</div>
|
||||
<div class="b3-label">
|
||||
${window.siyuan.languages.about2}
|
||||
<div class="fn__hr"></div>
|
||||
<input class="b3-text-field fn__block" readonly value="http://${window.siyuan.config.system.networkServe ? window.siyuan.config.localIPs[0] : "127.0.0.1"}:${location.port}">
|
||||
<div class="b3-label__text">${window.siyuan.languages.about3.replace("${port}", location.port)}</div>
|
||||
<div class="fn__hr"></div>
|
||||
<span class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.join("</code> <code class='fn__code'>")}</code></span>
|
||||
${window.siyuan.languages.about2}
|
||||
<div class="fn__hr"></div>
|
||||
<input class="b3-text-field fn__block" readonly value="http://${window.siyuan.config.system.networkServe ? window.siyuan.config.localIPs[0] : "127.0.0.1"}:${location.port}">
|
||||
<div class="b3-label__text">${window.siyuan.languages.about3.replace("${port}", location.port)}</div>
|
||||
<div class="fn__hr"></div>
|
||||
<div class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.filter(ip => !(ip.startsWith("[") && ip.endsWith("]"))).join("</code> <code class='fn__code'>")}</code></div>
|
||||
<div class="b3-label__text"><code class="fn__code">${window.siyuan.config.localIPs.filter(ip => (ip.startsWith("[") && ip.endsWith("]"))).join("</code> <code class='fn__code'>")}</code></div>
|
||||
</div>
|
||||
<div class="b3-label${window.siyuan.config.readonly ? " fn__none" : ""}">
|
||||
${window.siyuan.languages.about5}
|
||||
|
|
|
@ -60,12 +60,69 @@ func GetLocalIPs() (ret []string) {
|
|||
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.IsLoopback() && networkIp.IP.To4() != nil &&
|
||||
bytes.Equal([]byte{255, 255, 255, 0}, networkIp.Mask) {
|
||||
ret = append(ret, networkIp.IP.String())
|
||||
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, LocalHost)
|
||||
ret = gulu.Str.RemoveDuplicatedElem(ret)
|
||||
return
|
||||
|
|
Loading…
Add table
Reference in a new issue