Flora_Pac 项目小幅更新

Posted by Leask on November 22, 2012

十八大以来,网络就越发异常了,VPN 断断续续,工作受影响严重。盼星星盼月亮终于盼走了十八大。没想到网络依旧不好用,看来党妈已经想把封锁 VPN 作为常规策略了。幸好 ssh 还好用,于是借机会升级了 Flora_Pac 项目,加入了几个大家都比较期待的小功能,合并了 @forresty 的 fork 的部分代码,现在基本能用了。

项目介绍:https://leaskh.com/2011/12/02/用-Flora_Pac.py-生成自动翻墙的-pac-文件/

项目地址:https://github.com/Leask/Flora_Pac

具体改动:

leask@Flora:~/Documents/Working/Flora_Pac:master> git diff ee2e8e83b2ca5b4d178c091555d99a67d0bcb7fa
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c2de47f
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+Generate proxy auto-config rules. (Working with GFW)
\ No newline at end of file
diff --git a/flora_pac.py b/flora_pac.py
old mode 100644
new mode 100755
index 528e29a..317335e
--- a/flora_pac.py
+++ b/flora_pac.py
@@ -20,20 +20,27 @@ def generate_pac(proxy):
"// Flora_Pac by @leaskh"
"\n// www.leaskh.com, i@leaskh.com"
"\n"
- "\nfunction FindProxyForURL(url, host)"
- "\n{"
+ "\nfunction FindProxyForURL(url, host) {"
"\n"
"\n var list = ["
+ "\n ['192.168.0.0', '255.255.0.0'],"
)
intLines = 0
for ip,mask,_ in results:
if intLines > 0:
strLines = strLines + ','
intLines = intLines + 1
- strLines = strLines + "\n ['%s', '%s']"%(ip, mask)
+ strLines = strLines + "\n ['%s', '%s']"%(ip, mask)
strLines = strLines + (
"\n ];"
"\n"
+ "\n if (isPlainHostName(host)"
+ "\n || (host == '127.0.0.1')"
+ "\n || (host == 'localhost')"
+ "\n || (/\\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\\b/.test(host))) {"
+ "\n return 'DIRECT';"
+ "\n }"
+ "\n"
"\n var ip = dnsResolve(host);"
"\n"
"\n for (var i in list) {"

还是那一句,希望早日不用折腾这些事儿吧。