zyy24796143
zyy24796143
我在 DIAL_CYCLE 设置的时间是600秒进行一次重新拨号,实际是1200秒才进行重新拨号。在代码中看到的逻辑是 self.run() 里的 self.set_proxy(proxy) 写入完代理后,进行一次time.sleep(DIAL_CYCLE),然后 self.run() 执行完后又 time.sleep(DIAL_CYCLE)了一次。 
在 sender.py 中的 run() 里面如果 subprocess.getstatusoutput(DIAL_BASH) 执行提前结束,就会陷入无限拨号的问题。比如 subprocess.getstatusoutput(DIAL_BASH) 执行完了,拨号还没成功,还没获取到IP地址,需要等个10秒才获取到IP地址。此时提前进入 self.extract_ip() 获取IP,就会获取不到,ip 这个变量为空,进入 else 语句,马上重新执行 self.run() 重新拨号。。 建议或者在 self.extract_ip() 里面加入一个 while 等待时间 ,比如每 while 60秒,每检查一次就减1,然后sleep 1秒。有个60秒等待时间,再返回IP,或许会比较好。比如这样: ```python def extract_ip(self): """ 获取本机IP...