feat: 调整判断网络状态方式

This commit is contained in:
Mmx
2021-09-19 22:47:53 +08:00
parent bffdadda91
commit 83d020c928
5 changed files with 14 additions and 27 deletions

2
go.mod
View File

@@ -3,7 +3,7 @@ module autoLogin
go 1.16 go 1.16
require ( require (
github.com/Mmx233/tool v0.2.2 github.com/Mmx233/tool v0.2.3
github.com/PuerkitoBio/goquery v1.7.1 // indirect github.com/PuerkitoBio/goquery v1.7.1 // indirect
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf // indirect golang.org/x/net v0.0.0-20210917221730-978cfadd31cf // indirect
) )

4
go.sum
View File

@@ -1,5 +1,5 @@
github.com/Mmx233/tool v0.2.2 h1:1Sa/f0a4dZoXiCa12W1O3pItsRgl+qLOhItoGNBO8Do= github.com/Mmx233/tool v0.2.3 h1:fnjkYrX6Zhc0vcyPF5ihnxkNjXQ8zeAoG1Xm6xo7aBE=
github.com/Mmx233/tool v0.2.2/go.mod h1:un5MCoI21lH40fFI5S9++aja8nJb+2sjATak7PnGMZ0= github.com/Mmx233/tool v0.2.3/go.mod h1:un5MCoI21lH40fFI5S9++aja8nJb+2sjATak7PnGMZ0=
github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4= github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4=
github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY=
github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE=

View File

@@ -1,22 +1,17 @@
package util package util
import ( import "github.com/Mmx233/tool"
"context"
"net"
)
type checker struct{} type checker struct{}
var Checker checker var Checker checker
func (checker) NetOk() bool { func (checker) NetOk() bool {
r := &net.Resolver{ //指定DNS防止本地DNS缓存影响 h, _, e := tool.HTTP.GetBytes(&tool.GetRequest{
PreferGo: true, Url: "https://www.baidu.com/",
Dial: NetDailEr(), Redirect: false,
} })
if ip, err := r.LookupIP(context.Background(), "ip4", "www.msftconnecttest.com"); err != nil { //通过DNS确认是否在线 if e != nil || h.Get("Location") != "" {
return false
} else if len(ip) == 0 || ip[0].String() != "13.107.4.52" {
return false return false
} }
return true return true

View File

@@ -3,8 +3,10 @@ package util
import ( import (
"autoLogin/global" "autoLogin/global"
"autoLogin/models" "autoLogin/models"
"github.com/Mmx233/tool"
"log" "log"
"os" "os"
"time"
) )
func init() { func init() {
@@ -31,4 +33,7 @@ func init() {
_ = File.WriteJson(Path, c.FillDefault()) _ = File.WriteJson(Path, c.FillDefault())
global.Config = &c global.Config = &c
//http工具设定
tool.HTTP.Options.Timeout = 3 * time.Second
} }

View File

@@ -1,16 +1,12 @@
package util package util
import ( import (
"autoLogin/global"
"context"
"crypto/md5" "crypto/md5"
"crypto/sha1" "crypto/sha1"
"errors" "errors"
"fmt" "fmt"
"io" "io"
"net"
"regexp" "regexp"
"time"
) )
func Search(reg string, content string) (string, error) { func Search(reg string, content string) (string, error) {
@@ -49,12 +45,3 @@ func Sha1(content string) string {
bs := h.Sum(nil) bs := h.Sum(nil)
return fmt.Sprintf("%x\n", bs) return fmt.Sprintf("%x\n", bs)
} }
func NetDailEr() func(ctx context.Context, network, address string) (net.Conn, error) {
return func(ctx context.Context, network, address string) (net.Conn, error) {
d := net.Dialer{
Deadline: time.Now().Add(5 * time.Second),
}
return d.DialContext(ctx, "udp", global.Config.Settings.Dns+":53")
}
}