|
@@ -41,8 +41,8 @@ func test2() bool {
|
|
|
return strings.Contains(strings.ToLower(string(out)), "ttl=")
|
|
return strings.Contains(strings.ToLower(string(out)), "ttl=")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func test3() bool {
|
|
|
|
|
- conn, err := net.DialTimeout("tcp", TEST_HOST+":53", TEST_TIMEOUT)
|
|
|
|
|
|
|
+func tcpReachable(addr string, timeout time.Duration) bool {
|
|
|
|
|
+ conn, err := net.DialTimeout("tcp", addr, timeout)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
@@ -50,6 +50,10 @@ func test3() bool {
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func test3() bool {
|
|
|
|
|
+ return tcpReachable(TEST_HOST+":53", TEST_TIMEOUT)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func test4() (bool, time.Time) { // HTTP访问测试(不跟随重定向)
|
|
func test4() (bool, time.Time) { // HTTP访问测试(不跟随重定向)
|
|
|
client := http.Client{
|
|
client := http.Client{
|
|
|
Timeout: TEST_TIMEOUT,
|
|
Timeout: TEST_TIMEOUT,
|
|
@@ -79,7 +83,7 @@ func test4() (bool, time.Time) { // HTTP访问测试(不跟随重定向)
|
|
|
|
|
|
|
|
func CheckNetwork() (dnsOK, pingOK, tcpOK, httpOK bool, httpTime time.Time) {
|
|
func CheckNetwork() (dnsOK, pingOK, tcpOK, httpOK bool, httpTime time.Time) {
|
|
|
bOK1 := test1()
|
|
bOK1 := test1()
|
|
|
- bOK3 := test3()
|
|
|
|
|
|
|
+ bOK3 := test3() || tcpReachable(TEST_HOST+":80", TEST_TIMEOUT) || tcpReachable("8.136.98.49:80", TEST_TIMEOUT)
|
|
|
bOK4, httpDate := test4()
|
|
bOK4, httpDate := test4()
|
|
|
bOK2 := bOK3 || bOK4 || test2()
|
|
bOK2 := bOK3 || bOK4 || test2()
|
|
|
return bOK1, bOK2, bOK3, bOK4, httpDate
|
|
return bOK1, bOK2, bOK3, bOK4, httpDate
|