|
@@ -7,6 +7,7 @@ import (
|
|
|
mu "mfw/util"
|
|
|
"net"
|
|
|
"net/http"
|
|
|
+ "os"
|
|
|
"os/exec"
|
|
|
"strings"
|
|
|
"time"
|
|
@@ -78,7 +79,8 @@ func checkSpeed(addr string, updatename bool) (float64, float64) {
|
|
|
func changeIP() {
|
|
|
sendMessageBeforChangeIp()
|
|
|
defer sendMessageAfterChangeIp()
|
|
|
- for {
|
|
|
+ changeOK := false
|
|
|
+ for i := 1; i <= 5; i++ {
|
|
|
fmt.Println("start change ip...")
|
|
|
exec.Command("pppoe-stop").Run()
|
|
|
exec.Command("pppoe-start").Run()
|
|
@@ -88,6 +90,7 @@ func changeIP() {
|
|
|
newIp := GetInterfaceIpv4Addr("ppp0") //获取本机IP
|
|
|
fmt.Println("newIp:", newIp)
|
|
|
if newIp != "" && newIp != myoldip {
|
|
|
+ changeOK = true
|
|
|
fmt.Println("公网IP由", myoldip, "换为", newIp)
|
|
|
myoldip = newIp
|
|
|
break
|
|
@@ -104,6 +107,10 @@ func changeIP() {
|
|
|
}
|
|
|
time.Sleep(5 * time.Second)
|
|
|
}
|
|
|
+ if !changeOK { //切换5次失败自杀
|
|
|
+ fmt.Println("IP切换自杀...")
|
|
|
+ os.Exit(-1)
|
|
|
+ }
|
|
|
}
|
|
|
func sendMessageBeforChangeIp() {
|
|
|
fmt.Println("切换IP前发送消息...")
|