Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Asp.NET MVC İle Kullanıcının IP Adresini Alma

Merhaba,

İçeriğimizin başlığında her ne kadar Asp.NET MVC’ye değinilmiş olunsada aslında Asp.NET Web Forms mimarisinde de uygulayabileceğiniz bir kod demecinden bahsedeceğim.

Aşağıda vermiş olduğum kod bloğundaki yapı sayesinde ilgili kullanıcının doğruluk payı en yüksek olan IP adresini elde edebilirsiniz. Koda göz atarsanız eğer göreceksiniz ki “Load Balancer-Yük Dengeleme” yahut yönlendirme gibi olası durumları göze alarak belirli kontroller sağlanıp en doğru IP adresi elde edilmeye çalışılmıştır.

        public static string GetClientIp()
        {
            var ipAddress = string.Empty;
            if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
                ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
            else if (HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"] != null && HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"].Length != 0)
                ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];
            else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
                ipAddress = HttpContext.Current.Request.UserHostName;
            return ipAddress;
        }

Sevgiler…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

3 Cevaplar

  1. Xeribo dedi ki:

    MVC proje altında Models altında yaratmış oldugum code pagede ilgili referansları vermemem ragmen HttpRequest.Current de hatta veriyor kısaca referans istiyor fakat Nuget packte yanlızca .NetCore da bir referans bulabildim

    • Gençay dedi ki:

      Sıkıntı şu ki; onca yoğunluğun içinde birde sizin şu karman çorman derdinizi idrak etmeye çalışıp, ek olarak derman bulmaya da enerji harcamamı beklemenizdir. Derdinizi doğru düzgün izah etseniz ben yardımcı olmaya açığım ama çok kapalısınız. Bu dar anlatımdan beklentiniz nedir merak ediyorum! Karşı taraftan yardım istiyorsanız önce derdinizle ilgili karşı tarafa yardımcı olunuz. Ne alınan bir hata mesajı paylaşmıssınız ne de bu bahsettiklerinizden hangi konuda yardım istediğinizi belirtmişsiniz.

      • Altay Olcay dedi ki:

        Bu yorumumu ister yayınlayın, ister yayınlamayın. Fakat çözümü arkadaşa ve diger bu bloga girip bu konuya bakan arkadaşlara paylaşınız.

        Önce insanlar ile üslubunuza dikkat edin. Bu konuyu araştırırken bu blog ile karşılaştım. Bir soruya karşı böyle bir tavırlı mesaj yazacaksanız, size blogunuzu kapatmanızı öneririm.

        Lafı uzatmadan arkadaş gayet haklıdır. Mvc yazmışınız başlıkta fakat Bu kodun mvc de çalışma ihtimali yoktur. Sınıf farklılıklarından. Size daha pratik, daha kısa, akılda kalıcı kodu vereyim.

        HttpContext sınıfı C# asp.net de System.Web sınıfı ile gelmektedir. Mvc de bu sınıfıın kullanımı farklılık göstermektedir.

        System.Web.HttpContext.Current.Request.UserHostAddress kodu direk size mvc de de c#da da kullanıcının ipsini vermektedir. Fakat bunu ana makinada çalıştırırsanız :::1 gibi bir sonuç döndürür. Sıkıntı değil. Ana makine dışından başka bir makine ile siteye girdiginizde ip adresi elinize geçmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir