2011-09-07 12 views
5

Eventuali duplicati:
Client IP using C#Come ottenere l'indirizzo IP da un visitatore (anche se dietro un proxy)

Io uso ASP.net e C# e mi piacerebbe sapere come ottenere l'indirizzo IP da un visitatore su una pagina.

Mi piacerebbe vedere un esempio di codice che recupera l'indirizzo IP e sarà anche in grado di mostrare se un IP era dietro un proxy.

Grazie per il vostro tempo.

+0

per cui i ragazzi un voto basso per questa domanda? La domanda indicata da Mat non riguarda il proxy. Un commento sarebbe apprezzato. – GibboK

+0

leggi le risposte a questa domanda. Alcuni si occupano di proxy. (Per quanto riguarda il downvote, non lo so. Probabilmente per "non abbastanza ricerca".) – Mat

+0

Grazie mat per il tuo commento. – GibboK

risposta

9

è possibile utilizzare la proprietà UserHostName sull'oggetto Request:

string ip = Request.UserHostName; 

Per quanto riguarda la seconda domanda circa la delega è interessato, non v'è alcun modo affidabile per raggiungere questo obiettivo. È possibile utilizzare l'euristica per cercare alcune intestazioni di richiesta HTTP che potrebbero essere inviate dal server proxy come Via o X-Forwarded-For.

string header = Request.Headers["Via"] ?? Request.Headers["X-Forwarded-For"]; 
if (!string.IsNullOrEmpty(header)) 
{ 
    // probably the request was forwarded from a proxy server 
    // but you cannot be 100% sure as HTTP request headers can be faked 
} 
+0

Grazie Darin per la tua opinione. – GibboK

+0

per eseguire il lavoro 'request' è necessario aggiungere il riferimento' System.Web.dll', controllare come farlo [qui] (http://www.codeproject.com/Questions/422895/The-name-HttpContext-does -non-esiste-nella-corrente), la speranza aiuta qualcuno. – stom

+0

"Via" può contenere il nome del proxy ma "X-Forwarded-For" l'IP effettivo. Assicurati di aver scelto quello giusto. – SeriousM

-1

così semplice tizio,

string IP = Request.ServerVariables["REMOTE_HOST"].ToString(); 
+0

La sua domanda riguarda il farlo dietro un proxy. La soluzione fornirà sempre l'ip del server proxy stesso. –

Problemi correlati