之前写过一个我的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)。