{"action":"created","issue":{"url":"https://api.github.com/repos/XX-net/XX-Net/issues/812","labels_url":"https://api.github.com/repos/XX-net/XX-Net/issues/812/labels{/name}","comments_url":"https://api.github.com/repos/XX-net/XX-Net/issues/812/comments","events_url":"https://api.github.com/repos/XX-net/XX-Net/issues/812/events","html_url":"https://github.com/XX-net/XX-Net/issues/812","id":100975434,"number":812,"title":"给XXnet的一些建议，希望XXnet越来越好！","user":{"login":"jerry011235","id":12509976,"avatar_url":"https://avatars.githubusercontent.com/u/12509976?v=3","gravatar_id":"","url":"https://api.github.com/users/jerry011235","html_url":"https://github.com/jerry011235","followers_url":"https://api.github.com/users/jerry011235/followers","following_url":"https://api.github.com/users/jerry011235/following{/other_user}","gists_url":"https://api.github.com/users/jerry011235/gists{/gist_id}","starred_url":"https://api.github.com/users/jerry011235/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerry011235/subscriptions","organizations_url":"https://api.github.com/users/jerry011235/orgs","repos_url":"https://api.github.com/users/jerry011235/repos","events_url":"https://api.github.com/users/jerry011235/events{/privacy}","received_events_url":"https://api.github.com/users/jerry011235/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-08-14T09:39:24Z","updated_at":"2015-08-14T10:27:09Z","closed_at":null,"body":"\r\n1. 在“扫描IP设置”界面增加“自定义延时”。\r\n如果运气好，扫描的IP多，可以设置“自定义延时”为200ms，并把这些优质IP保存在google_ip_fast.txt 文件。而XXnet默认使用的IP就是google_ip_fast里的IP，就相当于现在的google_ip.txt。\r\n\r\n2. 希望能自动下载IP并转化\r\n希望以后XXnet能**自动**从[http://ipblock.chacuo.net/list][1]下载所有IP段，然后转化成标准格式，然后把他们添加到“goole待扫描ip总库”里。（“goole待扫描ip总库”为自带的IP段＋用户导入的IP段＋下载的IP段）\r\n\r\n以后XXnet有一个下载IP设置界面，里面可以让用户手动添加下载IP的地址，比如[日本IP地址段][2]，下载后**自动**用“gitip.py”转化成标准IP段格式：\r\n``` c\r\nip_origin = []\r\nwith open('myip.txt') as ip_tmp:\r\n    for x in ip_tmp:\r\n        sline = x.strip().split('\t')\r\n        ip_origin.append(sline)\r\nwith open('ip_list.txt', 'w') as ip_list:\r\n    out = '\\n'.join(x[2] for x in ip_origin)\r\n    ip_list.write(out)\r\n```\r\n**自动转化**完后就开始扫描了，根据用户设置的延时自动把可用的google ip分成两类，一类是延时小于200ms的IP，放在google_ip_fast.txt 里，另一类是 延时大于200ms，但是可用的googleip，放在google_ip_slow.txt 里。然后一般使用的就是 google_ip_fast。\r\n\r\n当然我们知道，优质低延时IP现在很少，几乎没有，所以希望XXnet可以监控google_ip_fast.txt 里的IP数量，如果发现少于10个（这个数字可以自定义）时，就进行弹窗提示：“亲～您的可用ip太少了，建议增大延时。”点击确定后，会自动转到“扫描IP设置”界面。\r\n\r\n作为用户来说，可以在一开始设置延时为1000ms（也可以作为默认），然后再慢慢减小，同时手动查看google_ip_fast.txt 里的IP数量，从而找到自己最适合的延时和ip数量。 \r\n\r\n而一旦用户改变延时，XXnet会自动停止扫描当前IP，然后优先扫描google_ip_slow.txt 里的IP，扫描完后再重新扫描“goole待扫描ip总库”，然后按照新的延时自动分类存放google ip。\r\n\r\n而XXnet在进行“下载一个国家的IP段”、“扫描”、“分类存放IP”、“监控”（如果需要就进行提示）、“重新扫描”这些过程时完全上自动的，在后台进行的，只要XXnet开着就OK。\r\n\r\n这样的XXnet应该比较完美了。\r\n希望各位大侠加油！\r\n\r\n  [1]: http://ipblock.chacuo.net/list\r\n  [2]: http://ipblock.chacuo.net/down/t_txt=c_JP"},"comment":{"url":"https://api.github.com/repos/XX-net/XX-Net/issues/comments/131061146","html_url":"https://github.com/XX-net/XX-Net/issues/812#issuecomment-131061146","issue_url":"https://api.github.com/repos/XX-net/XX-Net/issues/812","id":131061146,"user":{"login":"xxnet","id":10395528,"avatar_url":"https://avatars.githubusercontent.com/u/10395528?v=3","gravatar_id":"","url":"https://api.github.com/users/xxnet","html_url":"https://github.com/xxnet","followers_url":"https://api.github.com/users/xxnet/followers","following_url":"https://api.github.com/users/xxnet/following{/other_user}","gists_url":"https://api.github.com/users/xxnet/gists{/gist_id}","starred_url":"https://api.github.com/users/xxnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xxnet/subscriptions","organizations_url":"https://api.github.com/users/xxnet/orgs","repos_url":"https://api.github.com/users/xxnet/repos","events_url":"https://api.github.com/users/xxnet/events{/privacy}","received_events_url":"https://api.github.com/users/xxnet/received_events","type":"User","site_admin":false},"created_at":"2015-08-14T10:27:09Z","updated_at":"2015-08-14T10:27:09Z","body":"不错的思路和建议！\r\n\r\n对于自定义延时，其实目前的设计思路已经覆盖了，更加简洁和自动化，不过缺乏人性化的提示，待改进。\r\n\r\n目前的策略：\r\n1. 无脑的随机扫描所有ip段，找到之后放入good_ip.txt\r\n2. good_ip是根据握手时间进行排序的，使用时优先从快的使用起\r\n  这点应该就可以达到你期待的快速优先的目的。\r\n  而且用户不用管，这很重要。\r\n3. ip被封，或者不稳定，其握手时间会增加，而排到后面去\r\n4. 如果扫到足够多的好ip（要做到自动判断是不容易，目前是根据排序后的第100个ip的握手时间来判断）\r\n   就会降低扫描线程，直到停止扫描\r\n\r\n目前遇到最多的是新用户还没有扫描到足够ip，无法翻墙，又缺乏合适、明确的提示。\r\n  暂时想法是在状态页上显眼提示“ip不足，请等待扫描到足够ip再使用”\r\n\r\n\r\n\r\n第二个问题：自动加载ip库\r\n这个思路不错，这里需要发展得更加复杂一些才行了：\r\n1. 合适的ip库，最好是在github上维护，更多人参与\r\n   要不要动态加载？看这个库维护得好不好\r\n2. 合并默认库、动态加载库、自定义库\r\n   这个思路不错，不过需要增加黑名单库\r\n  原因是最近出现国内google为了迎合中国政府要求，在国内部署了服务器，类型是GWS，但是无法翻墙。\r\n  当然也可以修改检测手段，直接判断ip能否翻墙？\r\n3. ip库范围太大，也有好处，GFW更难封\r\n  当然扫描概率也低了，可以在没有请求的时候去扫描？\r\n\r\n  公共扫描ip的做法，更容易一锅端，还是每个用户自己去扫描好。\r\n\r\n\r\n在 2015年8月14日 下午6:06，ARwMq9b6 <notifications@github.com>写道：\r\n\r\n> http://ipblock.chacuo.net/list 范围太大，或许可以让一个国内的 VPS 实时测试可用 IP ，然后将可用 IP\r\n> 以网络连接的形式实时传给用户。\r\n>\r\n> —\r\n> Reply to this email directly or view it on GitHub\r\n> <https://github.com/XX-net/XX-Net/issues/812#issuecomment-131057865>.\r\n>\r\n"}}