DGKumar Ответов: 1

Как получить ip-адрес клиентской машины в C#?


Я разместил свое приложение mvc на сервере "testserver".
и я пытаюсь получить IP-адрес клиента, но это не дает значения отображения null.


Не могли бы вы помочь мне, как получить ip-адрес?
тот же код получает ipaddress в локальной машине, но не с сервера.

Что я уже пробовал:

Я уже пробовал
частная строка GetClientIPAddress()
{
string clientIPAddress = строка.Пустой;
пробовать
{
clientIPAddress = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.GetValue(0).Метод toString();
IPHostEntry Host = default(IPHostEntry);
строка Hostname = null;
Имя Хоста = System.Environment.свойство machineName;
Host = Dns.GetHostEntry(Имя Хоста);
по каждому элементу (IP-адрес IP в хост.AddressList)
{
если (ИС.AddressFamily == System.Net.Sockets.Адрес-семья.межсетевой)
{
clientIPAddress = конвертировать.ToString(IP);
}
}
}
ловить
{
clientIPAddress = "";
}
возврат clientIPAddress;
}

работает в локальном режиме, но не на сервере.

F-ES Sitecore

Это очень часто задаваемый вопрос, пожалуйста, сделайте фундаментальные исследования, такие как использование google, прежде чем задавать вопрос.

Спойлер: ответ заключается в том, что вы не можете, и не имеет значения, сколько раз задается вопрос, ответ остается прежним.

1 Ответов

Рейтинг:
2

OriginalGriff

Код C# выполняется на сервере, а не на клиенте - поэтому любые попытки получить доступ к сетевому адаптеру будут иметь доступ к информации сервера, а не клиента.
Вам нужно использовать HttpRequest.Свойство UserHostAddress (System.Web)[^] вместо.


DGKumar

Я пытался использовать, но получаю ::1 или пустой от хост-сервера
private char[] HEADER_SEPARATOR = { ',' };



string clientIPAddress = строка.Пустой;
пробовать
{
если (нуль == свойство HttpContext.Тока || значение null == свойство HttpContext.Тока.Запрос)
возвращать null;


ВАР запрос = свойство HttpContext.Тока.Запрос;
var forwards = запрос.Headers.Get("X-Forwarded-For");
если (!строка.IsNullOrEmpty(вперед))
{
значения var = вперед.Split(HEADER_SEPARATOR, 2);
возвращаемые значения[0];
}

/*еще*/
clientIPAddress= запрос.UserHostAddress;
}

OriginalGriff

Попробуйте посмотреть на
строка forwardedListInCSV = запрос.ServerVariables["HTTP_X_FORWARDED_FOR"];