【问题标题】:In FiddlerScript, is there a way to access the current machine's local IP?在 FiddlerScript 中,有没有办法访问当前机器的本地 IP?
【发布时间】:2014-08-20 10:31:48
【问题描述】:

我正在使用动态 IP 的机器上运行 Web 服务器。我希望能够在 OnBeforeRequest() 中修改以下语句:

if (oSession.host.toLowerCase() == "192.168.0.150:444") {  
    oSession.host = "localhost:44300";
}

这样我就不必对机器的 IP 进行硬编码(在本例中为 192.168.0.150 - 运行 Fiddler 的机器)。有没有办法做到这一点?

【问题讨论】:

    标签: fiddler


    【解决方案1】:

    您可以完全访问 .NET Framework 的 API,因此可以枚举当前计算机的所有 IP 地址。

    例如

    var ipAddrs = Dns.GetHostAddresses(String.Empty);
    

    您应该更改比较以使用hostname 成员:

    if ((oSession.port == 444) && (oSession.hostname == "192.168.0.150")
    

    您的客户端是否有理由通过其 IP 而不是通过其主机名访问此服务器(例如 http://myserver:444/

    【讨论】:

    • 我试图访问的机器是一台托管在 MAC OS X 10.10 中的 Windows 8 虚拟机。 VM 的主机名是“Proud”。每当我从我的 Mac OS 尝试 ping proud 时,它都会返回来自虚假 IP (stackoverflow.com/questions/25396126/…) 的 ping。如果我 ping proud.local 它返回正确的 IP。但是,如果我尝试访问proud.local:444,浏览器将无法解析该地址。从 VM 中访问 proud.local:444 可以工作(感谢 Fiddler)。
    • 不幸的是,这实际上并没有真正解决我的问题,因为每次 Windows VM 上的动态 IP 更改时,我都必须在 Fiddler 中运行 `!listen 444 xxx.xxx.xxx.xxx'。 . 这是禁止的。
    • 您对listen 命令的评论与您在此处提出的问题相比没有真正的意义。
    • 您的解决方案肯定回答了我的问题,我曾希望它有助于解决更大的问题。我需要这个答案的原因是因为我运行 Fiddler 的机器有一个动态 IP。有了这个解决方案,我可以确保 FiddlerScript 无缝处理 IP 的更改......不幸的是,我忘记了每次套接字更改时我都必须运行 listen 命令。
    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多