it-roy-ru.com

Как зарегистрировать IP-адрес клиента и имя компьютера в ASP.net

Я занимаюсь разработкой веб-приложения на ASP.net, для которого требуются имя пользователя и пароль.

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

Я использую log4net для входа. 

Я пробовал этот фрагмент кода, но я получаю имя хоста сервера в журнале после развертывания этого веб-приложения с использованием IIS-7 вместо имени клиентского компьютера. 

Login Page Page_Load метод:

protected void Page_Load(object sender, EventArgs e)
{
    log4net.GlobalContext.Properties["Hostname"] = Dns.GetHostName();
}

Изменения в Web.Config: 

 <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %property{Hostname} [%thread] %-5level %logger - %message%newline" />
 </layout>

Это действительно огромный проект, поэтому, пожалуйста, предложите мне способ, который требует минимальных изменений в коде для регистрации IP-адреса и имени компьютера клиента.

4
user3264676

Вы пытались использовать следующие?

Request.UserHostAddress

Request.UserHostName

Обратитесь к следующему ответу, опубликованному в другой теме

Получить IP-адрес клиента и имя компьютера?

15
Sam

Попробуйте Для имени клиентского компьютера ..

string[] computer_name = System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
  String ecname = System.Environment.MachineName;
            txtComputerName.Text = computer_name[0].ToString();

Для IP-адреса клиента.

Request.ServerVariables["REMOTE_ADDR"]

Проверьте это также ... https://stackoverflow.com/a/19286308/3156647

4
tarzanbappa
Dns.GetHostEntry(log.IPAddress).HostName

По некоторым причинам другие ответы не работали на моем сервере общего хостинга. Пойди разберись ...

0
Alexandru