Fiddler如何替换请求的域名

前言

由于url替换法替换域名有一个限制,就是一次只能替换一个规则,故写此教程。url替换法,请参考:如何使用fiddler中url替换法进行替换请求ip或者域名


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";

    }

……

}

这样就可以了,抓包后就发现所有 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";

        }

……

}

今天的教程就到这里,喜欢的话,欢迎点赞,谢谢!

你可能感兴趣的:(Fiddler如何替换请求的域名)