最近由于某种原因(大家应该都知道的!!)goagent不能用了主要是谷歌的IP连不上了,上次分享过一遍教程。
上面给出了可用的谷歌IP,但是没几天大部分的IP都不能用了,只有少数几个可以用,这么多IP总不能一个一个手动尝试吧,累死人的,于是我就寻思着写个脚本来批量检测IP地址是否可用并对可用的IP地址的连接速度进行排序,最后能得到可用的连接速度比较快的IP,只要把这些IP加进goagent的配置文件里就可以继续用啦,亲测速度还可以!!
代码是用python写的,时间比较紧写的比较粗糙,大牛勿喷!!
望好心人多分享一些好的IP地址
下载地址:http://pan.baidu.com/s/1kTHV4mN
源码:
#!/usr/bin/python #!coding:utf-8 import urllib2 import socket import time import re import sys import os def get_connect_time(ipaddress, port): try: socket.setdefaulttimeout(1) s=socket.socket() start=time.time() s.connect((ipaddress, port)) end=time.time() s.close() except: print 'Connect %s timeout' %(ipaddress) end='error' s.close() return '3000' try: socket.setdefaulttimeout(1) s=socket.socket() start=time.time() s.connect((ipaddress, port)) end=time.time() s.close() except: print 'Connect %s timeout' %(ipaddress) end='error' s.close() return '3000' if end!='error': connect_time=end-start print 'found ip %s 连接时间:%s ms' %(ipaddress,str(int(connect_time*1000))) # print connect_time connect_time=int(connect_time*1000) return connect_time else: return '3000' def get_host_file(html): #print html text=r'\d+\.\d+\.\d+\.\d+' ip=re.findall(text, html) #print ip iplist=[] for a in ip: if a in iplist: pass else: iplist.append(a) if '127.0.0.1' in iplist: iplist.remove('127.0.0.1') return iplist return iplist def banner(): print '参数错误' print '---------------------------------------------------------------------------------' print '--- 本程序支持从文件导入ip,也支持从网页正则提取ip ---' print '--- 用法: ---' print '--- python google.py https://laod.cn/tools/goagent.html ---' print '--- python google.py ip.txt ---' print '---------------------------------------------------------------------------------' def main(): argv=sys.argv #print len(argv) if len(argv)<3: banner() sys.exit(0) if '-f' not in argv and '-u' not in argv: banner() else: urladdress='' filename='' if '-u' in argv: urladdress=argv[argv.index('-u')+1] if '-f' in argv: filename=argv[argv.index('-f')+1] if urladdress=='': handle=open(filename) html=handle.read() else: html=urllib2.urlopen(urladdress) html=html.read() ip=get_host_file(html) print 'found %s ip' %(str(len(ip))) print 'starting connect...' print '------------------------------' usefulip=[] for a in ip: connect_time=get_connect_time(a, 443) #print connect_time if connect_time<=2000: usefulip.append([connect_time, a]) ip=[] for a in range(0, len(usefulip)): min_time_ip=min(usefulip) ip.append(min_time_ip) usefulip.remove(min_time_ip) print ip handle=open('output.txt', 'w') text='' for a in ip: text=text+'|'+a[1] handle.write(text) handle.close() os.popen('output.txt') if __name__ == '__main__': main()
原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/101.html
评论列表(11条)
噢,这样啊,本来想复活死了许久的goagent的。。
老d,链接挂了。。。
@木_有三观:这个很久不更新啦
建议换成xx-net,挺好用的
不能用了
IP地址不能丢成文本出来么……
@SimDouing:不能。。咩哈哈哈哈哈
@ZTfer: 一年了……
@Koukatei: 记得我也是差不多一年不用GoAgent了
@老D:表示从来没用过GoAgent..
@老D:现在还能用不能啦