HomeYazılım Geliştirme

C# Web Filtreleme

Sistem dosyalarını ve sistem dosyalarından bilgi almayı daha iyi kavramanızı sağlayacak bir uygulama. uac korumasından izin alma ve bir web sayfasının gerçek olup olmadığının kontrolünü yapmayı içermektedir.

C ile Hesap Makinesi Kodları
Ping+ Uygulaması ve C# Kaynak Kodları
C# Girilen Sayıya Kadar Olan Sayıları Toplama

sistem dosyalarını ve sistem dosyalarından bilgi almayı daha iyi kavramanızı sağlayacak bir 
uygulama. uac korumasından izin alma ve bir web sayfasının gerçek olup olmadığının kontrolünü yapmayı içermektedir.

2 bölümden oluşmakta.

1. komut : komut istemi ile web sayfalarını filtreleme
2. arayüz : arayüz kullanarak web sayfalarını filtreleme

1. Komut
Komut Satırı

hosts -e webadresi => belirtilen adresi engelle
hosts -i webadresi => belirtilen adrese izin ver

Arayüz yazarken kullanılacak geri dönüş değerleri

Return 1 => Adresine erişim engellendi
Return 2 => Adresine erişime izin verildi
Return 3 => Eksik parametre
Return 4 => Fazla parametre
Return 5 => Hatalı parametre
Return 6 => Gerçek bir adres değil
Return 7 => Gerçek bir adres
Return 8 => Belirtilen adresi kontrol ediniz
Return 9 => Hosts dosyasına yazım başarısız
Return 10 => Hosts dosyasından okuma başarısız

komut çalıştırırken yönetici olarak çalıştırmanız gerekmekte. aksi taktirde dosyaya yazma başarısız olacaktır. bu uygulamayı sistem dosyası olarak kullanabilir ve projelerinize ekleyebilirsiniz. sadece “hosts – e www.engelleneceksite.com” komutunu çalıştırmanız web sayfasına girilmeye çalışıldığında hiçbir uyarı vermeden google.com a yönlenmesini sağlayacaktır.

2. Arayüz

yazdığım consol uygulamasına bir arayüz oluşturdum

isterseniz bu arayüzü kullanarak web sayfalarını engelleyebilirsiniz.
10 sn bekledikten sonra engelleme/izinverme işlemi gerçekleşecektir.

hosts.exe

// Barbaros Kuşçular
// www.teknoforum.org
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.NetworkInformation;
using System.Diagnostics;
using System.IO;


namespace ConsoleApplication1
{

class Program
{
//web filtreleme v1.0.0.0
//tarih 07.03.2011
public static string kullanim = "\n\n----------KULLANIM--------------\n\n-e ipadresi belirtilen adresi engelle\n-i ipadresi belirtilen adrese izin ver\n\n--------------------------------"; // return 3
public static string hata1 = "Eksik parametre"; // return 3
public static string hata2 = "Fazla parametre"; // return 4
public static string hata3 = "Hatalı parametre"; // return 5
public static string message1 = "Adresine Erişim Engellendi"; // return 1
public static string message2 = "Adresine Erişime İzin verildi"; // return 2
public static string hata5 = "Gerçek Bir Adres Değil"; // return 6
public static string message3 = "Gerçek Bir Adres"; // return 7
public static string hata6 = "Belirtilen adresi kontrol ediniz"; // return 8
public static string hata7 = "Hosts dosyasına yazım başarısız"; // return 9
public static string hata8 = "Hosts dosyasından okuma başarısız"; // return 10
public static string[] engellenenler = new string[10];

public static Boolean sitekontrol(string site)
{
try
{
Ping pingat = new Ping();
PingReply bilgi;
bilgi = pingat.Send(site);
if (bilgi.Status == IPStatus.Success || bilgi.Status == IPStatus.TimedOut)
{
return true;
}
else
{
return false;
}
}
catch
{
System.Console.WriteLine(hata6);
return false;
}
}


public static Boolean engelle(string ip)
{
StreamWriter hosts = File.AppendText(@"C:\Windows\System32\drivers\etc\hosts");
hosts.Write("74.125.87.99 " + ip + "\r\n");
hosts.Close();
return true;
}


public static int hostsoku()
{
try
{

int i = 0;

StreamReader oku = File.OpenText(@"C:\Windows\System32\drivers\etc\hosts");
engellenenler[i] = oku.ReadLine();
do
{
i++;
engellenenler[i] = oku.ReadLine();
} while (engellenenler[i] != null);

// dosyamızı kapatıyoruz..
oku.Close();
return i;
}
catch
{
return 0;
}

}


public static Boolean izinver(string ip)
{
int engellenenkayit;
engellenenkayit = hostsoku();
if (engellenenkayit == 0)
{
System.Console.WriteLine(hata8);
}
else
{
StreamWriter yaz = File.CreateText(@"C:\Windows\System32\drivers\etc\hosts");
for (int i = 0; i < engellenenkayit; i++)
{
if (engellenenler[i] != "74.125.87.99 " + ip)
{
yaz.Write(engellenenler[i] + "\r\n");
}
}
yaz.Close();

}

return true;
}

static int Main(string[] args)
{

/*yönetici izni için gerekli olan kod
* ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.Verb = "runas";
processInfo.FileName = "cmd";
try
{
Process.Start(processInfo);
System.Console.WriteLine("İzin verildi");
}
catch(Exception)
{
System.Console.WriteLine("izin verilmedi");
}*/





int a=0;//parametre sayısı

foreach (string arg in args)
{
a++;
}
if (a == 0)
{
System.Console.WriteLine(kullanim);
return 3;
}
else if (a == 1)
{
if (args[0] == "help" || args[0] == "HELP" || args[0] == "?")
{
System.Console.WriteLine(kullanim);
return 3;
}
else if(args[0] == "-e" || args[0] =="-i")
{
System.Console.WriteLine(hata1);
return 3;
}
else
{
System.Console.WriteLine(hata3);
return 5;
}
}
else if (a > 2)
{
System.Console.WriteLine(hata2);
return 4;
}
else
{
if (args[0] == "-e")
{

if (sitekontrol(args[1]) == false)
{
System.Console.WriteLine(hata5);
return 6;
}
else
{

if (engelle(args[1]))
{
System.Console.WriteLine(message3 + "\n" + args[1] + " " + message1);
return 1;
}
else
{
System.Console.WriteLine(hata7);
return 9;
}

}
}
else if (args[0] == "-i")
{

if (sitekontrol(args[1]) == false)
{
System.Console.WriteLine(hata5);
return 6;
}
else
{
if (izinver(args[1]))
{
System.Console.WriteLine(message3 + "\n" + args[1] + " " + message2);
return 2;
}
else
{
System.Console.WriteLine(hata5);
return 6;
}
}
}
else
{
if (a == 2)
{
System.Console.WriteLine(hata3);
return 5;
}
else
{
System.Console.WriteLine(kullanim);
return 3;
}

}
}

}
}
}

Arayüz


// Barbaros Kuşçular
// www.teknoforum.org
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;

namespace WindowsFormsApplication3
{

public partial class Form1 : Form
{
public static string hata1 = "Eksik parametre"; // return 3
public static string hata2 = "Fazla parametre"; // return 4
public static string hata3 = "Hatalı parametre"; // return 5
public static string message1 = "Adresine Erişim Engellendi"; // return 1
public static string message2 = "Adresine Erişime İzin verildi"; // return 2
public static string hata5 = "Gerçek Bir Adres Değil"; // return 6
public static string message3 = "Gerçek Bir Adres";
public static string hata6 = "Belirtilen adresi kontrol ediniz"; // return 8
public static string hata7 = "Hosts dosyasına yazım başarısız"; // return 9
public static string hata8 = "Hosts dosyasından okuma başarısız"; // return 10

public Form1()
{
InitializeComponent();
}

public static void cikti(int mesajnumarasi, string adres)
{
if (mesajnumarasi == 1)
{
MessageBox.Show(message3 + "\n" + adres + " " + message1);
}
else if (mesajnumarasi == 2)
{
MessageBox.Show(message3 + "\n" + adres + " " + message2);
}
else if (mesajnumarasi == 3)
{
MessageBox.Show(hata1);
}
else if (mesajnumarasi == 4)
{
MessageBox.Show(hata2);
}
else if (mesajnumarasi == 5)
{
MessageBox.Show(hata3);
}
else if (mesajnumarasi == 6)
{
MessageBox.Show(hata5);
}
else if (mesajnumarasi == 8)
{
MessageBox.Show(hata6);
}
else if (mesajnumarasi == 9)
{
MessageBox.Show(hata7);
}
else if (mesajnumarasi == 10)
{
MessageBox.Show(hata8);
}
else
{
MessageBox.Show("işlem başarısız: belirtilmeyen hata");
}
}
private void button1_Click(object sender, EventArgs e)
{
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.Verb = "runas";
processInfo.FileName = "hosts";
processInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processInfo.Arguments = "-e " + textBox1.Text;
Process sonuc = null;


try
{

sonuc = Process.Start(processInfo);
Thread.Sleep(10000);
cikti(sonuc.ExitCode,textBox1.Text);


}
catch (Exception)
{
MessageBox.Show("izin verilmedi");
}
}

private void button2_Click(object sender, EventArgs e)
{
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.Verb = "runas";
processInfo.FileName = "hosts";
processInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processInfo.Arguments = "-i " + textBox1.Text;
Process sonuc = null;

try
{

sonuc = Process.Start(processInfo);
Thread.Sleep(10000);
cikti(sonuc.ExitCode, textBox1.Text);


}
catch (Exception)
{
MessageBox.Show("izin verilmedi");
}
}
}
}

COMMENTS

WORDPRESS: 0