2011-11-10 7 views
5

Sto lavorando a un progetto in cui vogliamo modificare dinamicamente l'indirizzo IP di dove vengono inviate le richieste all'interno della nostra app. Ad esempio, la prima richiesta che inviamo a myWebsite.com passa a 192.168.123.1, la seconda a 192.168.123.5, la terza a 192.168.123.10..NET, file host Windows, dns override tramite codice

So che è possibile ottenere questo tipo di funzionalità tramite il file hosts di Windows che si trova in c: \ windows \ system32 \ drivers \ etc, tuttavia ciò richiederebbe chiudere l'app, cambiare il file, quindi riaprire l'app .

Esistono librerie/tecniche .Net disponibili che ci consentono di ignorare dinamicamente il DNS dal nostro codice?

Grazie David


sono riuscito a lavorare questo fuori. Utilizzo di 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") 

L'impostazione dell'intestazione dell'host indica a IIS l'applicazione a cui è indirizzata la richiesta. Questo ci permette di avere l'indirizzo IP nella stringa URI dell'oggetto WebClient.

Grazie David

+0

Fake the header. Brillante. Non volevo davvero entrare negli hook della DLL. – Patrick

+0

Non sembra funzionare in realtà - l'intestazione dell'Host viene sovrascritta dall'host dall'host. – Sander

risposta

2

sono riuscito a lavorare questo fuori. (come da mio commento sopra).