Skip to content
This repository has been archived by the owner on Jan 17, 2021. It is now read-only.

能否做个断网判断? #107

Closed
distance00 opened this issue Oct 12, 2016 · 17 comments
Closed

能否做个断网判断? #107

distance00 opened this issue Oct 12, 2016 · 17 comments

Comments

@distance00
Copy link

网络出现故障人又不在good ip成0要完全重新扫描。能否在加入bad ip前或者连续出现bad ip时加个简单的断网判断,比如ping一下百度看能否ping通?

@yfdyh000
Copy link

@distance00
Copy link
Author

看起来挺复杂,不知道什么时候调用的,会不会只是启动时候检测下本地网络?感觉上似乎跟检测ip的模块没有关联。

@distance00
Copy link
Author

确实,
https://github.com/xyuanmu/XX-Mini/blob/master/lib/google_ip.py
第6行:import check_local_network
第444行:# ignore if system network is disconnected.
现在是不是把445行改一下就行了
if not check_local_network.is_ok():
改成:
if os.system('ping www.baidu.com')
就行了,搜了一下,后面参数不是什么意思,大概是有返回就是不通。
http://zhidao.baidu.com/link?url=AU_LIuELkn1h1PSZBMDYffGvVVHnQv67hVaLA6KqcUkW8C4Xnj9aFok7H026DnctYa__LX8MttakqsX-u5KWkq

@distance00
Copy link
Author

http://www.jb51.net/article/46829.htm
shell的方法似乎更好,但不懂语法,完全看不明白 && || 是什么意思?
ping -c 2 www.baidu.com|grep "icmp_" && echo 'ping ok' || echo 'ping fail'

@distance00
Copy link
Author

ping,发送一次,超时100
if os.system('ping -c 1 -w 100 www.baidu.com')

@jzp820927
Copy link

赶快请 xy 大出山吧

@xyuanmu
Copy link
Owner

xyuanmu commented Oct 13, 2016

我记得好像Python3版断网才会狂掉IP #49,而且也修复了。不过这只是日志中掉IP,实际上断网后会停止对good_ip.txt的写入操作,只有重新联网才会开始写入。也就是说在断网后IP狂掉,联网前退出xx-mini,联网后再启动是不会丢失IP的。现在外出了,短时间内怕是修复不了。
PS:我刚刚好像不小心删了一条评论,是谁的?真对不住,没注意看提示就点了确定。

@yfdyh000
Copy link

好像是我的。我这里没有邮件,watch的人应该有,转贴一下吧。
一直用xx-net,某个版本后就有这个问题。xx-mini不了解。

@distance00
Copy link
Author

重启路由器,发现提示good ip减少,关闭xx mini网络恢复后重启xx mini,good ip不会减少,但时间长了,good ip减少多了就不行了,我以为是写入文件有延迟。

@jzp820927
Copy link

如果是 linux 下面,应该可以写个bash脚本解决吧

@distance00
Copy link
Author

又试了一下,断网后没有断网提示,反倒会不断增加扫描线程,直到警告no enough ip,恢复网络后就需要重扫了,断网等个大概10几分钟吧,扫描线程越增,掉ip越快,并不需要太久。

@xyuanmu
Copy link
Owner

xyuanmu commented Oct 15, 2016

已找到原因,代码被注释,断网时状态没更改,导致IP丢失。

@distance00
Copy link
Author

辛苦了,测试问题已完美解决。现在只会连续出现几个SysCallError,然后还是显示断网前的ip数量。
Oct 16 00:24:36.433 - [WARNING] 59.18.35.109 _consume_single_frame:SysCallError(
10054, 'WSAECONNRESET')
请教一下为什么现在必须要在[system]中加入version 才能正常启动,以前没有这一项也能在窗口里面正常看到version,以前是根据什么判断version的?

@xyuanmu
Copy link
Owner

xyuanmu commented Oct 16, 2016

@distance00 以前版本号直接放在proxy.py里,现在更换到配置中,为的是实现一个小功能。因为日志中显示信息不方便查看,现在本机打开 127.0.0.1:8087 就可以查看详细信息。

@distance00
Copy link
Author

@xyuanmu 感谢说明,我没有替换goagent.exe这个文件,打开后仍可以在XX-Mini的窗口看到版本号,XX-Mini窗口的版本号是不是从另一个位置读取的?是这样的,gsnova没有ui文件,我发现类似软件用的ui文件都类似,就改了下字符串放到gsnova里面用,使用正常,就是无法在窗口显示版本号,是不是让gsnova作者在特定位置写入版本号就行了,还是ui文件的源代码也需要改写?

@xyuanmu
Copy link
Owner

xyuanmu commented Oct 17, 2016

标题是通过kernel32.dll修改的,只要有cmd窗口应该都能改吧,吧

@distance00
Copy link
Author

还是不太明白
default
goagent.exe这个ui文件并没有升级,而新版version的位置变了,它是如何知道版本号的?应该是从一个固定的位置读取的吧?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants