-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathmain.go
More file actions
93 lines (84 loc) · 2.47 KB
/
Copy pathmain.go
File metadata and controls
93 lines (84 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package main
import (
"fmt"
"log"
"os"
"regexp"
"strings"
"time"
"github.com/SteamHostSync/fileIO"
"github.com/levigross/grequests"
)
var cf *fileIO.Config
var L int
func init() {
cf, L = fileIO.ReadConfig()
cstSh, _ := time.LoadLocation("Asia/Shanghai")
time.Local = cstSh
}
var result string
var resultTmp string
var Tempplat string
func main() {
for i := 0; i < L; i++ {
for i, v := range (*cf).Platforms[i] {
if i == 0 {
resultTmp += fmt.Sprintf("#%s Start\n", v)
fmt.Printf("####################%s Start####################\n", v)
Tempplat = v
continue
}
ip, flag := getip(v)
log.Println(flag)
if flag == false {
resultTmp += fmt.Sprintf("%s\t\t\t%s\n", ip, v)
fmt.Printf("%s\t\t\t%s\n", ip, v)
} else {
resultTmp += fmt.Sprintf("####%s\t\t\t%s\n", ip, v)
fmt.Printf("####%s\t\t\t%s\n", ip, v)
}
}
resultTmp += fmt.Sprintf("#%s End\n", Tempplat)
resultTmp += fmt.Sprintf("# Last Update Time : %s \n\n", time.Now().Format("2006-01-02 15:04:05"))
fmt.Printf("####################%s End####################\n", Tempplat)
fmt.Printf("# Last Update Time : %s \n\n", time.Now().Format("2006-01-02 15:04:05"))
fileIO.WriteHost(resultTmp, "Hosts"+"_"+Tempplat)
result += resultTmp
resultTmp = ""
}
result += "#Github: https://github.com/Clov614/SteamHostSync\n"
fileIO.WriteHost(result, "Hosts")
_, err := os.Stat("./README_TEMP.md")
if err != nil {
return
}
content := fileIO.Read_tmp()
content = strings.Replace(content, "HOST_TARGET", result, 1)
fileIO.WriteFile(content, "README.md")
}
func getip(url string) (res string, flag bool) {
defer func() {
err := recover()
if err != nil {
log.Println("获取ip错误:", err)
flag = true
}
}()
//RO := grequests.RequestOptions{
// //Headers: map[string]string{
// // "User-Agent": "[{\"key\":\"User-Agent\",\"value\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36\",\"description\":\"\",\"type\":\"text\",\"enabled\":true}]",
// // "Host": "www.ipaddress.com",
// //},
// InsecureSkipVerify: true,
// //UserAgent: (*cf).UA,
// //Host: "www.ipaddress.com",
//}
resp, err := grequests.Get("https://dns.google/resolve?type=A&name="+strings.TrimSpace(url), nil)
if err != nil {
log.Fatalln("Unable to make request:", err)
}
re := regexp.MustCompile(`\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}`)
result := re.FindStringSubmatch(resp.String())
res = result[0]
return
}