Разница между четырьмя способами получения клиентского IP-адреса - PullRequest
1 голос
/ 16 октября 2011

Q:

Мне нужно знать разницу между следующим:

Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ;


Request.ServerVariables["REMOTE_ADDR"];

System.Web.HttpContext.Current.Request.UserHostAddress;

System.Net.IPAddress[] strClientIPAddress = System.Net.Dns.GetHostAddresses(Environment.MachineName);

Я хочу получить адрес клиента IP (пользователь, который получает доступ к сайту), и яЯ запутался среди предыдущих методов, которые более точны.

1 Ответ

6 голосов
/ 16 октября 2011

Я всегда использую третий вариант, чтобы получить IP-адрес клиента (или пользователя).

System.Web.HttpContext.Current.Request.UserHostAddress;

Первые два метода также делают то же самое.

Но последний метод делаетне вернет ip клиента, он вернет ip сервера, на котором расположен ваш сайт.И для вызова этого метода необходимо указать имя хоста или IP-адрес.Тем не менее, Environment.MachineName возвращает имя сервера, и поэтому он будет возвращать IP-адрес сервера, а не IP-адрес пользователя.

Для получения дополнительной информации о ваших первых двух вариантах я нахожу разницу путем поиска в Google, здесь это

...