This commit is contained in:
spiritlhl
2024-11-07 12:57:58 +00:00
parent 66e3d32364
commit 1686f44bc1
3 changed files with 31 additions and 6 deletions

View File

@@ -41,7 +41,7 @@ func main() {
}() }()
fmt.Println("项目地址:", "https://github.com/oneclickvirt/basics") fmt.Println("项目地址:", "https://github.com/oneclickvirt/basics")
ipInfo, _, _ := network.NetworkCheck("both", false, language) ipInfo, _, _ := network.NetworkCheck("both", false, language)
ipv6Info, err := ipv6.GetIPv6Mask() ipv6Info, err := ipv6.GetIPv6Mask(language)
res := system.CheckSystemInfo(language) res := system.CheckSystemInfo(language)
fmt.Println("--------------------------------------------------") fmt.Println("--------------------------------------------------")
temp := strings.ReplaceAll(res+ipInfo, "\n\n", "\n") temp := strings.ReplaceAll(res+ipInfo, "\n\n", "\n")

View File

@@ -8,7 +8,7 @@ import (
) )
// GetIPv6Mask 匹配获取公网 IPV6 的掩码信息 // GetIPv6Mask 匹配获取公网 IPV6 的掩码信息
func GetIPv6Mask() (string, error) { func GetIPv6Mask(language string) (string, error) {
interfaceName := getNetworkInterface() interfaceName := getNetworkInterface()
if interfaceName == "" { if interfaceName == "" {
return "", fmt.Errorf("无法获取网络接口名称") return "", fmt.Errorf("无法获取网络接口名称")
@@ -30,16 +30,28 @@ func GetIPv6Mask() (string, error) {
} }
if len(updatedAddrs) == len(addrs) { if len(updatedAddrs) == len(addrs) {
_, bits := ipnet.Mask.Size() _, bits := ipnet.Mask.Size()
return fmt.Sprintf("IPv6 子网掩码: /%d\n", bits), nil if language == "en" {
return fmt.Sprintf(" IPV6 Mask : /%d\n", bits), nil
} else {
return fmt.Sprintf(" IPV6 子网掩码 : /%d\n", bits), nil
}
} }
for _, updatedAddr := range updatedAddrs { for _, updatedAddr := range updatedAddrs {
if updatedIPnet, ok := updatedAddr.(*net.IPNet); ok { if updatedIPnet, ok := updatedAddr.(*net.IPNet); ok {
if updatedIPv6 := updatedIPnet.IP.To16(); updatedIPv6 != nil { if updatedIPv6 := updatedIPnet.IP.To16(); updatedIPv6 != nil {
if !isIPv6LinkLocal(updatedIPv6) && !isIPv6SiteLocal(updatedIPv6) && updatedIPv6.String() != ipv6.String() { if !isIPv6LinkLocal(updatedIPv6) && !isIPv6SiteLocal(updatedIPv6) && updatedIPv6.String() != ipv6.String() {
_, bits := updatedIPnet.Mask.Size() _, bits := updatedIPnet.Mask.Size()
return fmt.Sprintf("IPv6 子网掩码: /%d\n", bits), nil if language == "en" {
return fmt.Sprintf(" IPV6 Mask : /%d\n", bits), nil
} else {
return fmt.Sprintf(" IPV6 子网掩码 : /%d\n", bits), nil
}
} else if !isIPv6LinkLocal(updatedIPv6) && !isIPv6SiteLocal(updatedIPv6) && updatedIPv6.String() == ipv6.String() { } else if !isIPv6LinkLocal(updatedIPv6) && !isIPv6SiteLocal(updatedIPv6) && updatedIPv6.String() == ipv6.String() {
return "IPv6 子网掩码: /128", nil if language == "en" {
return " IPV6 Mask : /128", nil
} else {
return " IPV6 子网掩码 : /128", nil
}
} }
} }
} }

13
ipv6/ipv6_test.go Normal file
View File

@@ -0,0 +1,13 @@
package ipv6
import (
"fmt"
"testing"
)
func TestGetIPv6Mask(t *testing.T) {
ipv6Info, err := GetIPv6Mask("zh")
if err == nil {
fmt.Println(ipv6Info)
}
}