美文网首页
Fiddler如何替换请求的域名

Fiddler如何替换请求的域名

作者: andycheng | 来源:发表于2018-08-09 18:07 被阅读820次

    前言

    由于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如何替换请求的域名

          本文链接:https://www.haomeiwen.com/subject/ysmcbftx.html