Fiddler腳本替換請求域名

由於url替換法替換域名有一個限制,就是一次只能替換一個規則,故寫此教程。
Fiddler是Windows的桌面軟件,在開發過程當中,經常用到 Fiddler對數據進行抓包,Fiddler有個非常好的功能,就是可以把自己機器設置成一個http代理服務器,這樣手機就可以通過此代理上網,從而達到抓包的目的。

在抓包過程當中,遇到一個實際問題。有時候爲了調試方便,需要將線上的服務定位到內網。比如我們線上的服務器域名爲 api.ooxx.com。而內網的用於調試的服務器域名爲 test.ooxx.com,那麼就需要將所有域名 api.ooxx.com替換爲 test.ooxx.com,上網查了一下,通過修改Fiddler的腳本文件可以實現。

正文

Fiddler菜單中,Rules->Custon Rules,或按Ctrl+R鍵,編輯 CustomRules.js 代碼文件,在OnBeforeRequest函數裏面加上幾句代碼

方法一:

staticfunctionOnBeforeRequest(oSession: Session) {

if(oSession.HostnameIs("api.ooxx.com")) {

        oSession.hostname="test.ooxx.com";

    }

……

}

方法二:

var origin_host=“www.baidu.com”;
var replace_host=“www.taobao.com”;
if(oSession.host==origin_host){
oSession.fullUrl = oSession.fullUrl.Replace(origin_host,replace_host);
}

這樣就可以了,抓包後就發現所有 api.ooxx.com都變成了 test.ooxx.com

如果是ip地址的話,需要這樣寫:

staticfunctionOnBeforeRequest(oSession: Session) {

if (oSession.uriContains("x.x.x.x")) {

            oSession.host="127.0.0.1:9090";

        }

……

}


如果需要替換多個ip,可以這樣寫:

staticfunctionOnBeforeRequest(oSession: Session) {

if (oSession.uriContains("x.x.x.x")) {

            oSession.host="127.0.0.1:9090";

        }

if (oSession.uriContains("y.y.y.y")) {

            oSession.host="127.0.0.1:8080";

        }

……

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章