2011-11-10 37 views
5

我正在开发一个项目,我们希望动态更改请求发送到我们的应用程序的IP地址。例如,我们发送给myWebsite.com的第一个请求转到192.168.123.1,第二个转到192.168.123.5,第三个转到192.168.123.10。.NET,Windows主机文件,通过代码覆盖dns

我知道可以通过位于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") 

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

感谢 大卫

+0

假头。辉煌。我真的不想进入DLL钩子。 – Patrick

+0

看起来并不实际工作 - 主机头被来自URL的主机覆盖。 – Sander

回答

2

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