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
Fake the header. Brillante. Non volevo davvero entrare negli hook della DLL. – Patrick
Non sembra funzionare in realtà - l'intestazione dell'Host viene sovrascritta dall'host dall'host. – Sander