Jak mogę uzyskać aktualny adres IP odwiedzającego?Uzyskaj adres IP użytkownika
Odpowiedz
HttpContext.Current.Request.UserHostAddress;
lub
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
lub
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.UserHostAddress
Edytuj: również znalazł interesujące pytanie dotyczące nagłówków HTTP związanych z adresem IP: here.
Edit2: Jak wspomniano w komentarzach, a ja w linku powyżej pod warunkiem, HTTP_X_FORWARDED_FOR
nagłówek może zawierać wiele adresów IP oddzielonych przecinkiem. Nie stanąłem twarzą w twarz z tą sytuacją, ale przypuśćmy, że wymagane są pewne poprawki w mojej odpowiedzi.
używam tego kodu, aby uzyskać adres IP (zwraca IPAddress.None
wartość, jeśli coraz powiodło się z jakiegoś powodu):
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// <summary>
/// Gets the IP address of the request.
/// <remarks>
/// This method is more useful than built in because in some cases it may show real user IP address even under proxy.
/// The <see cref="System.Net.IPAddress.None" /> value will be returned if getting is failed.
/// </remarks>
/// </summary>
/// <param name="request">The HTTP request object.</param>
/// <returns></returns>
public static IPAddress GetIp(this HttpRequest request)
{
string ipString;
if (string.IsNullOrEmpty(request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.FirstOrDefault();
}
IPAddress result;
if (!IPAddress.TryParse(ipString, out result))
{
result = IPAddress.None;
}
return result;
}
+1 za zwrócenie jako IPAddress obiektu –
Należy pamiętać, że nagłówek 'X-Forwarded-For' może być sfałszowany, więc nie podejmuj żadnych decyzji bezpieczeństwa na jego podstawie. Sprawdź tylko wartość 'HTTP_X_FORWARDED_FOR', jeśli maszyna znajduje się za równoważnikiem obciążenia lub odwrotnym proxy. – devstuff
Należy również pamiętać, że HTTP_X_FORWARDED_FOR będzie zawierać wiele adresów IP, jeśli zostanie przekazanych wiele serwerów proxy. Czy metoda Parse obsługuje to poprawnie? – Tomas
public String GetIP()
{
string ipString;
if (string.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
{
ipString = Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ipString = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
}
return ipString;
}
Najpierw próbuje dowiedzieć proxy IP, jeśli jego wartość null możemy uzyskać że IP System
Spróbuj dostać zewnętrznego adresu IP użytkownika ..
public static string getExternalIp()
{
try
{
string externalIP;
externalIP = (new WebClient()).DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
catch { return null; }
}
- 1. Uzyskaj adres IP użytkownika w strukturze Zend
- 2. Uzyskaj publiczny (zdalny) adres IP
- 3. Uzyskaj adres IP klienta w Sinatrze?
- 4. Uzyskaj prawdziwy adres IP klienta w serwecie
- 5. Uzyskaj adres IP za pomocą skryptu akcji?
- 6. Uzyskaj adres IP interfejsu w systemie Linux
- 7. Uzyskaj adres IP nadawcy z pakietu multiemisji
- 8. Uzyskaj lokalny adres IP w Qt
- 9. Uzyskaj adres IP z ciągu (Groovy)
- 10. Function, aby uzyskać adres IP użytkownika
- 11. Jak uzyskać adres IP klienta/użytkownika?
- 12. jak uzyskać adres IP użytkownika w mvc
- 13. adres IP cURL
- 14. Znajdowanie adresu IP użytkownika
- 15. Uzyskaj adres IP serwera z JSP Żądanie/obiekt sesji
- 16. Uzyskaj prawdziwy adres IP w lokalnym środowisku programistycznym Rails
- 17. Uzyskaj poprawny lokalny adres IP z apletu Java
- 18. Uzyskaj aktualny adres IP klienta za zaporą, w języku Java
- 19. Uzyskaj adres IP podczas testowania aplikacji kolby przez testy nosem
- 20. Uzyskaj adres IP klienta w samohostowanym węźle SignalR
- 21. Uzyskaj publiczny adres IP na bieżącej instancji EC2
- 22. Uzyskaj adres IP klienta w serwisie internetowym RemObjects
- 23. Uzyskaj adres IP i opis adaptera za pomocą C#
- 24. Azure Powershell: Uzyskaj publiczny wirtualny adres IP usługi
- 25. WICKET: jak uzyskać adres IP/adres IP klienta
- 26. Zmieniaj adres IP dynamicznie?
- 27. Adres IP w Silverlight
- 28. Jak uzyskać adres IP użytkownika w ASP.NET Kontroler API MVC
- 29. Jak uzyskać adres IP użytkownika za pomocą .net?
- 30. Zmień adres IP w ruby
Jaki jest różnią między dwiema pierwszymi alternatywami? –