fix:修复DNS缓存导致的网络检查不正确的问题

This commit is contained in:
Mmx
2021-03-17 22:28:02 +08:00
parent 2a2fc9643f
commit dd9f0b3a96
5 changed files with 28 additions and 7 deletions

View File

@@ -1,18 +1,36 @@
package Util
import (
"Mmx/Request"
"fmt"
"net"
"time"
)
type checker struct{}
var Checker checker
func (checker) NetOk() bool {
if ip, err := net.LookupIP("www.msftconnecttest.com"); err != nil {
func (checker) NetOk(url string) bool {
if ip, err := net.LookupIP("www.msftconnecttest.com"); err != nil { //通过DNS确认是否在线
return false
} else if len(ip) == 0 || ip[0].String() != "13.107.4.52" {
return false
}
{ //有些路由器有DNS缓存故进行进一步确认
body, err := Request.Get(url, map[string]string{
"callback": "jQuery1635413",
"_": fmt.Sprint(time.Now().UnixNano()),
})
ErrHandler(err)
r, err := GetResult(body)
if err != nil {
ErrHandler(err)
}
if r != "ok" {
return false
}
}
return true
}