Получить публичный IP-адрес пользователя, который посещает мой сайт - PullRequest
0 голосов
/ 11 июня 2018

Я попробовал этот код ниже.Но это вернуло меня ::1

string IPAddress = string.Empty;
string SearchName = string.Empty;

            String strHostName = System.Web.HttpContext.Current.Request.UserHostAddress.ToString();

            IPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

Я ожидаю, что результат должен быть примерно таким: (358.89.48.188)

Так что я с нетерпением жду любого, кто сможет мне помочь.

(Получив это, я получу местоположение и передам его Сессии, поэтому мой контроллер и действие реагируют в зависимости от местоположения клиента)

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Заголовок ## Привет всем, спасибо за ваш вклад, я получил ответ, используя следующий код, надеюсь, это поможет кому-нибудь в будущем ## Заголовок ##

    public string GetVisitorIPAddress(bool GetLan = false)
    {
        string visitorIPAddress = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                   if (String.IsNullOrEmpty(visitorIPAddress))
            visitorIPAddress = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                  if (string.IsNullOrEmpty(visitorIPAddress))
            visitorIPAddress = System.Web.HttpContext.Current.Request.UserHostAddress;

        if (string.IsNullOrEmpty(visitorIPAddress) || visitorIPAddress.Trim() == "::1")
        {
            GetLan = true;
            visitorIPAddress = string.Empty;
        }
        if (GetLan)
        {
            if (string.IsNullOrEmpty(visitorIPAddress))
            {
                //This is for Local(LAN) Connected ID Address
                string stringHostName = Dns.GetHostName();
                //Get Ip Host Entry
                IPHostEntry ipHostEntries = Dns.GetHostEntry(stringHostName);
                //Get Ip Address From The Ip Host Entry Address List
                IPAddress[] arrIpAddress = ipHostEntries.AddressList;
                try
                {
                    visitorIPAddress = arrIpAddress[arrIpAddress.Length - 2].ToString();
                }
                catch
                {
                    try
                    {
                        visitorIPAddress = arrIpAddress[0].ToString();
                    }
                    catch
                    {
                        try
                        {
                            arrIpAddress = Dns.GetHostAddresses(stringHostName);
                            visitorIPAddress = arrIpAddress[0].ToString();
                        }
                        catch
                        {
                            visitorIPAddress = "127.0.0.1";
                        }
                    }
                }

            }

        }

        var zaz = "";
        zaz = visitorIPAddress.ToString();
        getcityname(zaz);
        return null;
    }
0 голосов
/ 11 июня 2018

попробуйте это ...

 public string GetIpAddress()
    {
         var ipAddress=Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
         if(string.IsNullOrEmpty(ipAddress))
         {
             return Request.ServerVariables["REMOTE_ADDR"];
         }
         return ipAddress;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...