Как получить текущий IP-адрес посетителей?Получить IP-адрес пользователя
ответ
HttpContext.Current.Request.UserHostAddress;
или
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
или
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.UserHostAddress
Редактировать: также нашел интересный вопрос относительно заголовков http-связанных http here.
Редакция 2: Как указано в комментариях и в ссылке, приведенной выше, заголовок HTTP_X_FORWARDED_FOR
может содержать несколько IP-адресов, разделенных запятой. Я не сталкивался с этой ситуацией, но предполагаю, что некоторые поправки к моему ответу требуются.
Я использую этот код, чтобы получить IP-адрес (он возвращает IPAddress.None
значение, если получение не удалось по каким-то причинам):
/// <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 для возврата в качестве объекта IPAddress –
Имейте в виду, что заголовок 'X-Forwarded-For' может быть подделан, поэтому не принимайте на него никаких решений безопасности. Проверяйте значение «HTTP_X_FORWARDED_FOR» только в том случае, если машина находится за балансировщиком нагрузки или обратным прокси. – devstuff
Также имейте в виду, что HTTP_X_FORWARDED_FOR будет содержать несколько IP-адресов, если передано несколько прокси. Правильно ли используется метод Parse? – 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;
}
Первый пытается выяснить прокси IP, если его нуль, мы можем получить что система IP
Попробуйте получить внешний IP-адрес пользователя ..
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. Aurelia: Как получить имя пользователя пользователя пользователя
- 2. Получить имя пользователя пользователя Windows
- 3. Как получить идентификатор пользователя пользователя в php?
- 4. Как получить запрос имя пользователя-пользователя
- 5. Получить имя пользователя MSSQL для пользователя
- 6. Firebase получить изображение пользователя с ID пользователя
- 7. Instagram получить идентификатор пользователя от имени пользователя
- 8. Asp.net Core Получить пользователя по идентификатору пользователя
- 9. Получить идентификатор пользователя для изменения пароля пользователя
- 10. Получить идентификатор пользователя от пользователя token
- 11. Получить имя пользователя текущего пользователя addin
- 12. Получить текущий зарегистрированный идентификатор пользователя пользователя
- 13. Получить электронную почту пользователя, из таблицы пользователя
- 14. Получить пользователя из сеанса пользователя jackrabbit
- 15. Как получить имя пользователя после регистрации пользователя
- 16. GeneXus - GXFlow: Как получить имя пользователя пользователя
- 17. Как получить параметр пользователя «tid» пользователя
- 18. PHP/MySQL Получить имя пользователя текущего пользователя.
- 19. MVC3 + Как получить текущее имя пользователя пользователя
- 20. Получить полное имя пользователя новое имя пользователя
- 21. Получить идентификатор пользователя с именем пользователя 2.0
- 22. Получить имя пользователя из идентификатора пользователя
- 23. Получить имя пользователя от имени пользователя JFileChooser
- 24. получить идентификатор пользователя от имени пользователя - buddyPress
- 25. Получить идентификатор пользователя при регистрации пользователя WordPress
- 26. получить идентификатор пользователя от имени пользователя Instagram
- 27. Не удается получить текущий идентификатор пользователя пользователя
- 28. Как получить идентификатор пользователя от зарегистрированного пользователя?
- 29. Как получить местоположение пользователя
- 30. Получить authed настройки пользователя
что такое отличаются между двумя первыми альтернативами? –