go_chang922_ip/main.go

90 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Author: giaogiao giaogiao
* @Date: 2023-07-28 08:53:13
* @LastEditors: giaogiao giaogiao
* @LastEditTime: 2023-07-28 16:07:39
* @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(5000)
read_a_file()
}
}