mirror of
https://github.com/oneclickvirt/basics.git
synced 2025-11-02 04:52:40 +08:00
83 lines
2.6 KiB
Go
83 lines
2.6 KiB
Go
package baseinfo
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/oneclickvirt/basics/model"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// printIPInfo 重构输出函数
|
|
func printIPInfo(ipInfo *model.IpInfo, securityInfo *model.SecurityInfo, err error) {
|
|
if err != nil {
|
|
fmt.Println("获取 IP 信息时出错:", err)
|
|
return
|
|
}
|
|
if ipInfo != nil {
|
|
fmt.Println("IPInfo:")
|
|
fmt.Println("IP:", ipInfo.Ip)
|
|
fmt.Println("ASN:", ipInfo.ASN)
|
|
fmt.Println("Org:", ipInfo.Org)
|
|
fmt.Println("Country:", ipInfo.Country)
|
|
fmt.Println("Region:", ipInfo.Region)
|
|
fmt.Println("City:", ipInfo.City)
|
|
fmt.Println("---------------------------------")
|
|
}
|
|
if securityInfo != nil {
|
|
fmt.Println("Security Info:")
|
|
fmt.Println("IsAbuser:", securityInfo.IsAbuser)
|
|
fmt.Println("IsAttacker:", securityInfo.IsAttacker)
|
|
fmt.Println("IsBogon:", securityInfo.IsBogon)
|
|
fmt.Println("IsCloudProvider:", securityInfo.IsCloudProvider)
|
|
fmt.Println("IsProxy:", securityInfo.IsProxy)
|
|
fmt.Println("IsRelay:", securityInfo.IsRelay)
|
|
fmt.Println("IsTor:", securityInfo.IsTor)
|
|
fmt.Println("IsTorExit:", securityInfo.IsTorExit)
|
|
fmt.Println("IsVpn:", securityInfo.IsVpn)
|
|
fmt.Println("IsAnonymous:", securityInfo.IsAnonymous)
|
|
fmt.Println("IsThreat:", securityInfo.IsThreat)
|
|
fmt.Println("---------------------------------")
|
|
}
|
|
}
|
|
|
|
func TestIPInfo(t *testing.T) {
|
|
// Test for IPv4
|
|
fmt.Println("IPv4 Testing:")
|
|
startV4 := time.Now()
|
|
ipInfoV4Result, securityInfoV4Result, _, _, err := RunIpCheck("ipv4")
|
|
elapsedV4 := time.Since(startV4)
|
|
if err == nil {
|
|
fmt.Println("IPv4:")
|
|
fmt.Println("------")
|
|
printIPInfo(ipInfoV4Result, securityInfoV4Result, nil)
|
|
}
|
|
fmt.Println("---***********************************---")
|
|
// Test for IPv6
|
|
fmt.Println("IPv6 Testing:")
|
|
startV6 := time.Now()
|
|
ipInfoV6Result, securityInfoV6Result, _, _, err := RunIpCheck("ipv6")
|
|
elapsedV6 := time.Since(startV6)
|
|
if err == nil {
|
|
fmt.Println("IPv6:")
|
|
fmt.Println("------")
|
|
printIPInfo(ipInfoV6Result, securityInfoV6Result, nil)
|
|
}
|
|
fmt.Println("---***********************************---")
|
|
// Test for both IPv4 and IPv6
|
|
fmt.Println("Both Testing:")
|
|
startBoth := time.Now()
|
|
ipInfoV4Result, securityInfoV4Result, ipInfoV6Result, securityInfoV6Result, err = RunIpCheck("both")
|
|
elapsedBoth := time.Since(startBoth)
|
|
if err == nil {
|
|
fmt.Println("IPv4:")
|
|
fmt.Println("------")
|
|
printIPInfo(ipInfoV4Result, securityInfoV4Result, nil)
|
|
fmt.Println("IPv6:")
|
|
fmt.Println("------")
|
|
printIPInfo(ipInfoV6Result, securityInfoV6Result, nil)
|
|
}
|
|
fmt.Printf("IPv4 test took %s\n", elapsedV4)
|
|
fmt.Printf("IPv6 test took %s\n", elapsedV6)
|
|
fmt.Printf("Both test took %s\n", elapsedBoth)
|
|
}
|