【问题标题】:.NET, Windows host file, dns override via code.NET、Windows 主机文件、通过代码覆盖的 dns
【发布时间】:2011-12-26 01:52:40
【问题描述】:

我正在处理一个项目,我们希望在我们的应用程序中动态更改请求发送到的 IP 地址。例如,我们发送到 myWebsite.com 的第一个请求发送到 192.168.123.1,第二个我们想要发送到 192.168.123.5,第三个发送到 192.168.123.10。

我知道可以通过位于 c:\windows\system32\drivers\etc 的 Windows 主机文件来实现此类功能,但这需要关闭应用程序,更改文件,然后再次打开应用程序。

是否有任何可用的 .Net 库/技术允许我们从代码中动态覆盖 DNS?

谢谢 大卫


我设法解决了这个问题。使用 VB.NET:

    Dim c As New WebClient
    c.Headers.Add("Host", "myWebsite.com")
    c.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2")
    c.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    c.Headers.Add("Accept-Language", "en-gb,en;q=0.5")
    c.Headers.Add("Accept-Encoding", "0")
    c.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7")

    Dim s
    s = c.DownloadString("http://192.168.123.10/index.aspx")

设置 Host 标头告诉 IIS 请求的目标是哪个应用程序。这允许我们在 WebClient 对象的 URI 字符串中拥有 IP 地址。

谢谢 大卫

【问题讨论】:

  • 伪造标题。杰出的。我真的不想进入 DLL 挂钩。
  • 似乎实际上不起作用 - Host 标头被 URL 中的主机覆盖。

标签: .net url dns lookup hosts


【解决方案1】:

我设法解决了这个问题。 (根据我上面的评论)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多