之前写过一个我的pac文件,但是非常不好意思。因为那个脚本我为了定义网站列表比较简单,用了个数组。可是pac文件并非在完备的javascript环境运行,所以动了手脚以后这个pac文件只在firefox里面可用,而safari和系统级别都不能用(MacOS X)。所以还是老实写传统的好。可是转念一想,不如还是ruby一下吧。这样修改起来还是加一个域名就OK了。
#!/usr/bin/env ruby
proxy = 'SOCKS 127.0.0.1:7777'
gfucked_sites = [
'youtube.com',
'ytimg.com',
'googlevideo.com',
'tinyurl.com',
'bit.ly',
'blogspot.com',
'twitter.com',
'plurk.com',
'torproject.org',
'wikipedia.org',
'tumblr.com',
'soup.io',
'pandora.com',
'adobe.com',
'last.fm',
'photoshop.com',
'google.com',
'googlecode.com',
'appspot.com',
'acer.com',
'demonoid.com',
'alexa.com',
'wikimedia.org',
'yahoo.com',
'zend.com',
'aptana.com',
'uncyclopedia.tw',
'uncyc.org',
'webarchive.org',
'pornhub.com',
'yourporn.com',
'facebook.com',
'mail-archive.com',
'versionapp.com',
'friendfeed.com',
'ff.im',
'chinagfw.org',
'bullogger.com',
'mulhollanddrive.com',
'iphone-dev.org',
'plurk.com',
'imageshack.us',
'zendesk.com'
]
puts "function FindProxyForURL(url, host) {"
gfucked_sites.each do |site|
puts " if (shExpMatch(url, \"*://*.#{site}/*\")) { return \"#{proxy}\"; }"
puts " if (shExpMatch(url, \"*://#{site}/*\")) { return \"#{proxy}\"; }"
end
puts " return \"DIRECT\""
puts "}"
如果使用tor则修改proxy=’SOCKS 127.0.0.1:9050’就OK了。生成一个放在可以访问的Url上,然后让整个系统使用这个proxy,我们就又可以使用我们喜欢的twitter客户端了(for me it’s tweetie)。
One thought on “pac文件生成脚本”