.NET、Windows 主机文件、通过代码覆盖 dns

标签 .net url dns lookup hosts

我正在开发一个项目,我们希望动态更改应用程序中发送请求的 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 header 是告诉 IIS 请求的目标应用程序。这使我们能够在 WebClient 对象的 URI 字符串中获得 IP 地址。

谢谢 大卫

最佳答案

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

关于.NET、Windows 主机文件、通过代码覆盖 dns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078422/

相关文章:

ios - 如何在网络断开时停止 URLSessionTask?

来自 URL 文本文件的 Java 单行扫描器

java - 如何调用权威服务器获取 ip 响应?

.net - 检测何时SerialPort断开连接

.net - 使用 .NET 中的 Cyber​​Source API 取消/退款交易

c# - NetworkCredential UseDefaultCredentials 不工作

html - 网络路径引用 URI/方案相对 URL

c# - 从 .NET 程序集透明地访问 native 内存

python - 如何告诉请求模块不进行 DNS 查找?

github - Github页面上自定义域的子域