2011年9月10日星期六

[GFW BLOG(功夫网与翻墙)] 一个用来把gfwList里网址转换成IP的脚本

来源:http://blog.csdn.net/lzsdc/article/details/6765767

欢迎访问墙外站:http://lzsblog.appspot.com/?p=291001

ZZJ于8月17日提出用gfwList的网址通过可信的DNS转换成IP,写入hosts文件进而实现翻墙的方法。鄙人通过Python脚本进行了实现。代码丑陋望大牛指教。


import sys,DNS,base64  def splitList(txt): 	arr = txt.split("\n") 	 	l = [] 	for line in arr: 		if (not len(line)): #empty line 			continue 		if (line[0] == "!"): #Comment line 			continue 		elif(line[0:2] =="@@"):#Forbidding line 			continue 		elif(line.find("/")!=-1 or line.find("*")!=-1): #URL is ignored, only domains left 			continue 		 		#In this case, domain name is irrelevant to protocol(http or https) 		elif(line[0:2] =="||"): 			l.append(line[2:]) 		elif(line[0] == "."): 			l.append(line[1:]) 		else: 			l.append(line) 	 	return l 	 	  #Decode and decorate the input string f = open("gfwlist.txt","r") txt = f.read().replace("\n","") txt = base64.decodestring(txt)  domains = splitList(txt)  #Set default DNS server DNSServer=['8.8.8.8'] DNS.defaults['server']=DNSServer  DNS.DiscoverNameServers()  #These two varible are used to track the percentage of parsing process. l = 0 a = len(domains)  for line in domains: 	request=DNS.Request() 	try: 		result=request.req(name=line,qtype="A") 	except DNS.Base.DNSError: 		msg=line+"\tTime Out\n" 	else: 		if not len(result.answers): 			msg=line+"\tNo record\n" 		else: 			msg=line+ "\tBingo\n" 			print line + " " + result.answers[0]["data"] 	print >> sys.stderr, line + msg, l*1.0/a, "%"


代码文件:makeIP.py(墙外)

文中使用了模块pyDNS,这一非标准模块需要到http://pydns.sourceforge.net/下载。

解压后安装,python setup.py install。

然后运行程序,只需要将标准输出重定向到指定文件即可。python makeIP.py > hosts

接一句Fvck GFW

PS:21:51更新,增加了过滤CNAME记录的功能,解决有跳转网站的解析问题,请下载最新的代码文件


作者:lzsdc 发表于2011-9-10 13:25:19 原文链接

�����������������������������������������

需要翻墙利器? 请安装Wuala,查找和添加gfwblog为好友,就可高速下载翻墙软件,或访问http://tinyurl.com/gfwblog直接下载。

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 9/10/2011 08:23:00 PM

--
1、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog。2、发一封标题为GFW的邮件到fanqiang70ma@gmail.com,就可获取翻墙利器赛风新地址。附《数字时代》赠阅版。3、本站热烈欢迎各位朋友投稿或推荐文章,请发邮件至chinagfwblog[at]gmail.com。
停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com

没有评论:

发表评论