90 lines
2.6 KiB
Go
90 lines
2.6 KiB
Go
/*
|
||
* @Author: giaogiao giaogiao
|
||
* @Date: 2023-07-28 08:53:13
|
||
* @LastEditors: giaogiao giaogiao
|
||
* @LastEditTime: 2023-07-28 16:22:40
|
||
* @FilePath: \go\main.go
|
||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||
*/
|
||
package main
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"hello/setup"
|
||
"io/ioutil"
|
||
"net/http"
|
||
"os"
|
||
"strconv"
|
||
"time"
|
||
|
||
"github.com/parnurzeal/gorequest"
|
||
)
|
||
|
||
func read_a_file() {
|
||
|
||
type Node []struct {
|
||
Remarks string `json:"remarks"`
|
||
Country string `json:"country"`
|
||
Port int `json:"port"`
|
||
}
|
||
// 打开json文件
|
||
jsonFile, err := os.Open("user.json")
|
||
|
||
// 最好要处理以下错误
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
|
||
// 要记得关闭
|
||
defer jsonFile.Close()
|
||
|
||
byteValue, _ := ioutil.ReadAll(jsonFile)
|
||
var node Node
|
||
err = json.Unmarshal(byteValue, &node)
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
for _, item := range node {
|
||
// fmt.Println(item.Remarks, item.Country, item.Port)
|
||
text_url(item.Remarks, item.Country, item.Port)
|
||
}
|
||
}
|
||
func text_url(remarks string, country string, port int) {
|
||
setup.CwLog().Infof("start_testing country:%s,port:%d", country, port)
|
||
request := gorequest.New().Proxy("socks5://127.0.0.1:" + strconv.Itoa(port))
|
||
resp, body, errs := request.Get("https://ip.shagain.club/").End()
|
||
if errs != nil {
|
||
fmt.Println("发现 端口:" + strconv.Itoa(port) + "无法连接 开始切换IP")
|
||
setup.CwLog().Errorf("start_testing country:%s,port:%d,error:%s", country, port, errs)
|
||
setup.CwLog().Infof("start_switching_ip country:%s,port:%d", country, port)
|
||
resp, err := http.Get("http://127.0.0.1:50101/api/get_ip_list?num=1&country=" + country + "&state=all&city=all&zip=all&isp=all&ip_time=1&t=1&port=" + strconv.Itoa(port))
|
||
if errs != nil {
|
||
fmt.Println("切换IP 失败 端口:" + strconv.Itoa(port))
|
||
return
|
||
}
|
||
fmt.Println("切换IP成功 端口:" + strconv.Itoa(port))
|
||
setup.CwLog().Infof("switch_ip_to_return resp:%s,err:%s", resp, err)
|
||
return
|
||
}
|
||
setup.CwLog().Infof("requestToReturnTheResult resp:%s,body:%s", resp, body)
|
||
setup.CwLog().Infof("the_current_port_is_fine port:%d", port)
|
||
}
|
||
|
||
func init() {
|
||
setup.InitLogger() //初始化log
|
||
}
|
||
func main() {
|
||
fmt.Println("程序已经启动")
|
||
setup.CwLog().Warn("start") //测试log
|
||
for {
|
||
timeStr := time.Now().Format("2006-01-02 15:04:05") //当前时间的字符串,2006-01-02 15:04:05据说是golang的诞生时间,固定写法
|
||
fmt.Println("开始检测 " + timeStr) //打印结果:2017-04-11 13:24:04
|
||
time.Sleep(20 * time.Second)
|
||
read_a_file()
|
||
}
|
||
|
||
}
|