|
@@ -3,10 +3,8 @@ package main
|
|
|
import (
|
|
|
"fmt"
|
|
|
"io"
|
|
|
- "io/ioutil"
|
|
|
mu "mfw/util"
|
|
|
"net"
|
|
|
- "net/http"
|
|
|
"os"
|
|
|
"os/exec"
|
|
|
"strings"
|
|
@@ -77,8 +75,8 @@ func checkSpeed(addr string, updatename bool) (float64, float64) {
|
|
|
|
|
|
// 切换IP
|
|
|
func changeIP() {
|
|
|
- sendMessageBeforChangeIp()
|
|
|
- defer sendMessageAfterChangeIp()
|
|
|
+ //sendMessageBeforChangeIp()
|
|
|
+ //defer sendMessageAfterChangeIp()
|
|
|
changeOK := false
|
|
|
for i := 1; i <= 5; i++ {
|
|
|
fmt.Println("start change ip...")
|
|
@@ -112,62 +110,63 @@ func changeIP() {
|
|
|
os.Exit(-1)
|
|
|
}
|
|
|
}
|
|
|
-func sendMessageBeforChangeIp() {
|
|
|
- fmt.Println("切换IP前发送消息...")
|
|
|
- bs := []byte{}
|
|
|
- for _, v := range cache {
|
|
|
- udpclient.WriteUdp([]byte{}, mu.OP_WILLCHANGEIP, v.Addr) //udp通知本服务器的下载器节点要切换ip,下掉所有服务
|
|
|
- bs = append(bs, []byte(v.Code)...)
|
|
|
- }
|
|
|
- client.WriteObj("", "", mu.SERVICE_DOWNLOAD_DELETE_NODE, mu.SENDTO_TYPE_ALL_RECIVER, bs)
|
|
|
-}
|
|
|
|
|
|
-func sendMessageAfterChangeIp() {
|
|
|
- fmt.Println("切换IP后发送消息...")
|
|
|
- cacheLock.Lock()
|
|
|
- for k, v := range cache { //告诉下载器重连
|
|
|
- udpclient.WriteUdp([]byte{}, mu.OP_NEWCLIENT, v.Addr)
|
|
|
- delete(cache, k)
|
|
|
- }
|
|
|
- cacheLock.Unlock()
|
|
|
- go func() {
|
|
|
- for i := 1; i <= 5; i++ {
|
|
|
- time.Sleep(5 * time.Second)
|
|
|
- if len(cache) > 0 {
|
|
|
- bs := []byte{}
|
|
|
- for k, v := range cache {
|
|
|
- fmt.Println("本机下载器机器码:", k, v.Code)
|
|
|
- bs = append(bs, []byte(v.Code)...)
|
|
|
- }
|
|
|
- client.WriteObj("", "", mu.SERVICE_DOWNLOAD_APPEND_NODE, mu.SENDTO_TYPE_ALL_RECIVER, bs)
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }()
|
|
|
-}
|
|
|
+//func sendMessageBeforChangeIp() {
|
|
|
+// fmt.Println("切换IP前发送消息...")
|
|
|
+// bs := []byte{}
|
|
|
+// for _, v := range cache {
|
|
|
+// udpclient.WriteUdp([]byte{}, mu.OP_WILLCHANGEIP, v.Addr) //udp通知本服务器的下载器节点要切换ip,下掉所有服务
|
|
|
+// bs = append(bs, []byte(v.Code)...)
|
|
|
+// }
|
|
|
+// client.WriteObj("", "", mu.SERVICE_DOWNLOAD_DELETE_NODE, mu.SENDTO_TYPE_ALL_RECIVER, bs)
|
|
|
+//}
|
|
|
+
|
|
|
+//func sendMessageAfterChangeIp() {
|
|
|
+// fmt.Println("切换IP后发送消息...")
|
|
|
+// cacheLock.Lock()
|
|
|
+// for k, v := range cache { //告诉下载器重连
|
|
|
+// udpclient.WriteUdp([]byte{}, mu.OP_NEWCLIENT, v.Addr)
|
|
|
+// delete(cache, k)
|
|
|
+// }
|
|
|
+// cacheLock.Unlock()
|
|
|
+// go func() {
|
|
|
+// for i := 1; i <= 5; i++ {
|
|
|
+// time.Sleep(5 * time.Second)
|
|
|
+// if len(cache) > 0 {
|
|
|
+// bs := []byte{}
|
|
|
+// for k, v := range cache {
|
|
|
+// fmt.Println("本机下载器机器码:", k, v.Code)
|
|
|
+// bs = append(bs, []byte(v.Code)...)
|
|
|
+// }
|
|
|
+// client.WriteObj("", "", mu.SERVICE_DOWNLOAD_APPEND_NODE, mu.SENDTO_TYPE_ALL_RECIVER, bs)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }()
|
|
|
+//}
|
|
|
|
|
|
// 获取IP
|
|
|
-func getMyIp() (ip string) {
|
|
|
- for i := 1; i <= 5; i++ {
|
|
|
- client := &http.Client{
|
|
|
- Timeout: 5 * time.Second, // 设置超时时间为5秒
|
|
|
- }
|
|
|
- resp, err := client.Get("https://api.ipify.org") // 使用ipify.org提供的IP查询API
|
|
|
- if err != nil {
|
|
|
- fmt.Println("获取公网IP失败:", err)
|
|
|
- continue
|
|
|
- }
|
|
|
- ipByte, err := ioutil.ReadAll(resp.Body)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("获取公网IP失败:", err)
|
|
|
- continue
|
|
|
- }
|
|
|
- resp.Body.Close()
|
|
|
- ip = string(ipByte)
|
|
|
- return
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
+//func getMyIp() (ip string) {
|
|
|
+// for i := 1; i <= 5; i++ {
|
|
|
+// client := &http.Client{
|
|
|
+// Timeout: 5 * time.Second, // 设置超时时间为5秒
|
|
|
+// }
|
|
|
+// resp, err := client.Get("https://api.ipify.org") // 使用ipify.org提供的IP查询API
|
|
|
+// if err != nil {
|
|
|
+// fmt.Println("获取公网IP失败:", err)
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// ipByte, err := ioutil.ReadAll(resp.Body)
|
|
|
+// if err != nil {
|
|
|
+// fmt.Println("获取公网IP失败:", err)
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// resp.Body.Close()
|
|
|
+// ip = string(ipByte)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// return
|
|
|
+//}
|
|
|
|
|
|
func checkIpAndPort() (sPorts, fPorts []string) {
|
|
|
//检测IP
|