Loglama her web projesi için önemlidir. Özellikle de web servisleri için...
Local network için izin verilen ve dışarıya açık olmayan servisler için çokta önemli olmasa da, özellikle dışarıya açık servislerde kullanıcılardan gelen requestlerin ve request ip'lerinin loglanması çok önemlidir. Bu da, geçmişe yönelik açıklamalarda veya kötü amaçlı saldırıların tespitinde çok önemlidir.
Bu makalemde de C# programlama dilinde web requestlerin ip adresinin nasıl elde edildiğinin kodunu vermeye çalışacağım. Bunun için projenize System.Web isim uzayının eklenmesi gerekiyor. Bundan sonra HttpContext.Current.Request.ServerVariables ve HttpContext.Current.Request.ServerVariables değerlerinden ihtiyacımız olanları alacağız.
Makalenin başında konuya loglama ile başlamıştım. Bunun bir kaç nedeni var. Requestlerin loglanması için de en önemli konulardan bir tanesi gelen requestlerin hangi ip adresinden geldiğini loglamaktır. Bu anlamda yukarıdaki Request Ip'lerin elde edilmesi için yazılmış metot çok işinizi görecektir. Konu aslında çok detaylandırılabilir. Özellikle Requestlerin loglanma stratejileri ile ilgili gelecekte bir makale de yazmayı planlıyorum...
Local network için izin verilen ve dışarıya açık olmayan servisler için çokta önemli olmasa da, özellikle dışarıya açık servislerde kullanıcılardan gelen requestlerin ve request ip'lerinin loglanması çok önemlidir. Bu da, geçmişe yönelik açıklamalarda veya kötü amaçlı saldırıların tespitinde çok önemlidir.
Bu makalemde de C# programlama dilinde web requestlerin ip adresinin nasıl elde edildiğinin kodunu vermeye çalışacağım. Bunun için projenize System.Web isim uzayının eklenmesi gerekiyor. Bundan sonra HttpContext.Current.Request.ServerVariables ve HttpContext.Current.Request.ServerVariables değerlerinden ihtiyacımız olanları alacağız.
public string GetRequestIpAddress()
{
string ip = "";
try
{
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ip))
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ip = ip.Split(',')[0];
}
}
catch (Exception ex)
{
//log ex
}
return ip;
}
Makalenin başında konuya loglama ile başlamıştım. Bunun bir kaç nedeni var. Requestlerin loglanması için de en önemli konulardan bir tanesi gelen requestlerin hangi ip adresinden geldiğini loglamaktır. Bu anlamda yukarıdaki Request Ip'lerin elde edilmesi için yazılmış metot çok işinizi görecektir. Konu aslında çok detaylandırılabilir. Özellikle Requestlerin loglanma stratejileri ile ilgili gelecekte bir makale de yazmayı planlıyorum...
Yorumlar
Yorum Gönder