Получение IP-адреса сервера в ASP.NET?

Одним из способов было бы добавить другое поле только для чтения к вашему классу MyObject, которое оборачивает логику, которую вы хотите, и привязывает столбец к этому полю.

    public string DisplayValue
    {
        get {
             if (Perm)
             {
               return HiddenBankAcc;
            }
            else
            {
               return FullBankAcc;
            }
       }
   }
36
задан शेखर 7 April 2019 в 06:15
поделиться

3 ответа

Это должно работать:

 //this gets the ip address of the server pc

  public string GetIPAddress()
  {
     IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); // `Dns.Resolve()` method is deprecated.
     IPAddress ipAddress = ipHostInfo.AddressList[0];

     return ipAddress.ToString();
  }

http://wec-library.blogspot.com/2008/03/gets-ip-address-of-server-pc-using-c.html

ИЛИ

 //while this gets the ip address of the visitor making the call
  HttpContext.Current.Request.UserHostAddress;

http://www.geekpedia.com/KB32_How-do-I-get-the-visitors-IP-address.html

57
ответ дан 27 November 2019 в 05:15
поделиться

Ниже защелки взят от Mkyong, чтобы показать вкладке сетей внутреннюю консоль разработчиков в Google Chrome. В "Заголовки Запроса" вкладка Вы видели список всех серверных переменных как показано ниже:

enter image description here

Ниже немного строк кода, который получает ipaddress клиента, который поражает Ваше приложение

//gets the ipaddress of the machine hitting your production server              
string ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

if (ipAddress == "" || ipAddress == null)  
{                                     
  //gets the ipaddress of your local server(localhost) during development phase                                                                         
  ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];              
}

//Output:                                                                           
For production server - 122.169.106.247 (random)
For localhost         - ::1
0
ответ дан 27 November 2019 в 05:15
поделиться

Вышеупомянутое выполняется медленно, поскольку требует вызова DNS (и, очевидно, не будет работать, если он недоступен). Вы можете использовать приведенный ниже код, чтобы получить карту локальных IPV4-адресов текущего компьютера с соответствующей маской подсети:

public static Dictionary<IPAddress, IPAddress> GetAllNetworkInterfaceIpv4Addresses()
{
    var map = new Dictionary<IPAddress, IPAddress>();

    foreach (var ni in NetworkInterface.GetAllNetworkInterfaces())
    {
        foreach (var uipi in ni.GetIPProperties().UnicastAddresses)
        {
            if (uipi.Address.AddressFamily != AddressFamily.InterNetwork) continue;

            if (uipi.IPv4Mask == null) continue; //ignore 127.0.0.1
            map[uipi.Address] = uipi.IPv4Mask;
        }
    }
    return map;
}

предупреждение: это еще не реализовано в Mono

14
ответ дан 27 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: