旅人行腳 |
瓦哈拉的塗鴉簿 消滅網路廣告 (Dec 17, 11) | |||||||||||||||||||||||||||||||||||||||
這篇也是頗偏門的專業知識,但是對於那些對網路廣告不爽而又不害怕把自己的電腦搞砸的人可能有點用處。 挑明了說,我對Yahoo Mail新的客戶端界面相當不滿。我並不那麼討厭網站上的廣告,只要它不妨礙閱讀或使用。但是Yahoo Mail的界面寫得相當差勁,這都什麼年代了,還有人寫前台端網頁不會用非同步資料請求(asynchronous http request)。我最討厭看到網頁停住不受控制,等某一區塊資料讀回來之後才繼續。如果等的資料竟然是廣告,而廣告伺服器的速度又慢得像是在用modem,這就更讓我不爽。很不幸的是換email account的麻煩程度太高,所以只好留在Yahoo,但我一直想把廣告給幹掉。以下的操作過程適用於Windows XP / IE 8,其他版本應該差異不大。 消滅敵人的第一步就是找到敵人,也就是這些網路廣告的網址。直接去trace code太辛苦,最簡單的方法是用Fiddler ( http://www.fiddler2.com/fiddler2/ ),這是個網頁除錯測試的工具軟體,相當有用,免費下載,執行起來後你可以看到你的web browser背地裏去了哪些地方要資料,包括那些廣告網站。如果你不想安裝個不知道幹什麼的軟體,也可以到Temporary Internet Files去找記錄(IE -> Tools -> Internet Options, on General tab, click "Settings" button under Browsing history, click "View files" button, then order the files by "Last Accessed" time and inspect the "Internet Address" field) 因為廣告商不只一家,這個過程可能要重複幾次才能抓到所有可能的廣告網址,基本上可以開著Fiddler等廣告出現就去查記錄,或是等廣告出現後立刻去Temporary Internet Files找。 找到敵人之後下一步是不讓他們進來。這有很多方法,你可以用防火牆(Firewall)去擋,但更簡單有效的方法是去改hosts檔案。你可以用hosts檔案直接指定任何網域名所對應的IP Address,在hosts裏頭的對應有第一優先順位,一但找到就不會到internet去找對應。hosts檔案在Windows XP的位置是C:\WINDOWS\system32\drivers\etc\hosts,其他作業系統據我所知也都有,位置可能不同,用Explorer的Find功能去找就可以。修改前最好先做個備份,然後用簡單文字編輯軟體(像Notepad,不要用Word)打開,然後加上下面這幾行: 127.0.0.1 any-world.ngd.ysm.yahoodns.net 127.0.0.1 ads.bluelithium.com 127.0.0.1 ad.yieldmanager.com 127.0.0.1 view.atdmt.com 127.0.0.1 ad.doubleclick.net 127.0.0.1 mi.adinterax.com 127.0.0.1 cdn5.tribalfusion.com 127.0.0.1 a.tribalfusion.com 127.0.0.1 speed.pointroll.com 127.0.0.1 ads.pointroll.com 127.0.0.1 uac.advertising.com 127.0.0.1 ads.bridgetrack.com 127.0.0.1 img.mediaplex.com 127.0.0.1 img-cdn.mediaplex.com 127.0.0.1 uac.advertising.com 127.0.0.1 ads.dotomi.com 127.0.0.1 cdn.eyewonder.com 127.0.0.1 a4.ak.lscdn.net 127.0.0.1 ads.yimg.com 127.0.0.1 ads.yldmgrimg.net 127.0.0.1 media.match.com 這些是我在Yahoo Mail上抓到所有的廣告網域名,127.0.0.1是localhost,也就是自己這台電腦的標準預設IP Address,在IP Address和網域名之間用空格或是tab隔開,每個網域名之間換行隔開,然後儲存離開。加上這些行之後的效果就是當Yahoo Mail的前台端去要廣告時,真正的IP Address被攔截,轉而改向自己這台電腦要資料,那當然什麼都要不到。 這樣改好了之後固然是可以擋掉廣告,但是原來出現廣告的那塊地方會出現找不到網頁的錯誤訊息,而且放著不管一陣子之後你會發現Yahoo Mail所在的那個IE process會耗掉極大的系統資源,page file會大到幾個Gigabytes,而且電腦效率會變得極低,所以不能讓網頁錯誤訊息放著不管。但要解決這問題,我所知道唯一的辦法就是在自己這台電腦上真正去跑個web server,並且真正提供些資料傳回來。 XP Professional有IIS,如果熟悉Microsoft環境的可以自己弄個dummy webpage,但是非professional版的Windows沒有。最簡單的方法是下載Apache ( http://httpd.apache.org/download.cgi ),Apache是基本的HTTP server,下載安裝之後去修改 httpd.conf 檔案(位置應該是在 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,或是從Start -> All Programs -> Apache HTTP Server 2.2 -> Configure Apache Server -> Edit Apache httpd.conf Configuration File)。找到定義ErrorDocument的段落,然後加上下面這一行: ErrorDocument 404 http://127.0.0.1/index.html 404是web page not found的錯誤碼,加上這行之後,不管在網域名之後加上了什麼其他網址,都會傳回Apache的預設home page。 再下一步是稍微修改一下這個預設home page,讓它傳回來完全的空白。用Notepad打開C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\index.html ,把 Apache works! 消除掉,儲存,重新啟動Apache,然後在IE上輸入 http://127.0.0.1 ,如果看到空白畫面而沒有其他錯誤訊息,就算大功告成了。回到Yahoo Mail,你應該看到右邊原來出現廣告的地方現在一片空白,而且系統資源使用不會有異常。 Yahoo Mail能搞到連像我這麼茍且偷安的人都覺得太幹而願意花這些力氣,這家公司的前途還真是讓人憂慮。 | |||||||||||||||||||||||||||||||||||||||
瓦哈拉首頁 | 前一則 | 後一則 | |||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
瓦哈拉首頁 | 前一則 | 後一則 | |||||||||||||||||||||||||||||||||||||