Разработка межсетевого экрана для компьютеров пользователей с использованием технологии WFP

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

= new System.Diagnostics.Process();.StartInfo.FileName = FilterAdress;.StartInfo.Arguments = "Yes";

proc.Start();// Запуск консольного приложения.Close();

}(Exception ex)

{.Show(ex.ToString(), "Error");

Application.Exit();;

}

}

}reboot = 0;//Проверка были ли изменения в файле со списком фильтровFileAdress = "BlockList.iff", //Файл в который сохраняет список фильтров= "ConsoleFilter.exe";//Консольное приложение для работы с фильтрами

//Меняет панель в зависимости от нажатой кнопки

private void changeState(bool flag)

{(flag)

{.Visible = false;.Visible = true;.Text = "";

}

{.Visible = true;.Visible = false;

}

}void label1_Click(object sender, EventArgs e)

{[] lines = File.ReadAllLines(FileAdress);

if (lines[0] == "true")//Проверка: в каком состоянии находится фильтр блокирующий весь трафик

{("All", "false");.Show("It was successfully unblocked", "Operation coplete", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

{("All", "true");.Show("It was successfully blocked", "Operation coplete", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}void label2_Click(object sender, EventArgs e)

{(true);.Text = "Input IP-address";

}void label3_Click(object sender, EventArgs e)

{(true);.Text = "Input port";

}void label4_Click(object sender, EventArgs e)

{(true);.Text = "Choose necessary program";.BorderStyle = BorderStyle.FixedSingle;.Enabled = true;

}void label5_Click(object sender, EventArgs e)

{addr = textBox1.Text;

#region Add/Delete IP

if (label6.Text == "Input IP-address")//Проверка, какая из панелей запущена

{(addr.Length < 7)//Если количество символов меньше минимально возможного

{.Show("Invalid IP-adress", "Error");

return;

}.Trim();n = 0,//Количество символов в блоках адреса (между точками)= 0;//Количество точек в адресе[] array = new int[4];//Массив, содержащий блоки адреса. Для фильтрации лишних нулей(int i = 0; i < addr.Length; i++)

{ch = addr[i];(ch >= 0x30 && ch <= 0x39)

{++;(n > 3)

{.Show("Invalid IP-adress", "Error");;

};

}(ch == . || ch == ,)

{

//Если предыдущий символ был не точка, данный символ является последним

if (n == 0 || addr.LastIndexOf(ch) == addr.Length - 1)

{.Show("Invalid IP-adress", "Error");;

}(n == 3)

255)//255">{a = Convert.ToInt32(addr.Substring(i - n, n));(a > 255)//Блок больше 255

{.Show("Invalid IP-adress", "Error");;

}

}[nDot] = Convert.ToInt32(addr.Substring(i - n, n));= 0;++;;

}.Show("Invalid IP-adress", "Error");;

}(nDot != 3)

{.Show("Invalid IP-adress", "Error");;

}[3] = Convert.ToInt32(addr.Substring(addr.Length - n, n));

//Преобразование IP-адреса для консольного приложения

addr = "";(int i = 0; i < 4; i++)

{(Convert.ToString(array[i], 16).Length < 2) addr += "0" + Convert.ToString(array[i], 16);addr += Convert.ToString(array[i], 16);

}= Convert.ToUInt32(addr, 16).ToString();

if (radioButton1.Checked == true)//Проверка на выбранное действие

{(CheckCondition(addr) == false)//Проверка на наличие IP-адреса в файле

{

//Добавление IP-адреса в файл("IP", addr);

}

{.Show("This IP already exists in the database", "Error");;

}

}

{(CheckCondition(addr) == true)//Проверка на наличие IP-адреса в файле

{

//Удаление IP-адреса из файла("IP", addr);

}

{.Show("This IP not exists in the database", "Error");;

}

}

}

#endregion

#region Add/Delete Port_a;(label6.Text == "Input port")

{(addr.Length < 1)//Если количество символов меньше минимально возможного

{.Show("Invalid port", "Error");;

}(char ch in addr)

{(ch >= 0x30 && ch <= 0x39);.Show("Invalid port", "Error");;

}

_a = Convert.ToInt32(addr);(_a < 1)

{.Show("Invalid port", "Error");;

}(radioButton1.Checked == true)//Проверка на выбранное действие

{(CheckCondition(addr) == false)//Проверка на наличие порта в файле

{

//Добавление порта в файл("Port", addr);

}

{.Show("This port already exists in the database", "Error");;

}

}

{(CheckCondition(addr) == true)//Проверка на наличие порта в файле

{

//Удаление порта из файла("Port", addr);

}

{.Show("This port not exists in the database", "Error");;

}

}

}

#endregion

#region Add/Delete Programm(label6.Text == "Choose necessary program")

{(textBox1.Text.Length == 0)//Проверка выбрана ли программа

{.Show("Please choose necessary program", "Error");;

}(radioButton1.Checked == true)//Проверка на выбранное действие

{(CheckCondition(textBox1.Text) == false)//Проверка на наличие в файле

{

//Добавление программы в файл("Programm", textBox1.Text);

}

{.Show("This programm already exists in the database", "Error");;

}

}

{(CheckCondition(textBox1.Text) == true)//Проверка на наличие в файле

{

//Удаление программы из файла("Programm", textBox1.Text);

}

{.Show("This Programm not exists in the database", "Error");;

}

}.ReadOnly = false;.BorderStyle = BorderStyle.None;

}

#endregion(false);.Enabled = false;

}void label7_Click(object sender, EventArgs e)

{(false);.ReadOnly = false;.BorderStyle = BorderStyle.None;.Enabled = false;

}void label8_Click(object sender, EventArgs e)

{();

}void Form1_FormClosing(object sender, FormClosingEventArgs e)

{(reboot == 1)//Проверка были ли введены изменения в список фильтров

{result = MessageBox.Show("If you close this application without rebooting the filter, it will refresh after this program restarts. Do you want to reboot the filter now?", "Do you want to reboot the filter now?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);(result == DialogResult.Yes)

{

{.Diagnostics.Process proc = new System.Diagnostics.Process();.StartInfo.FileName = FilterAdress;.Start();//Запуск консольного приложения.Close();.Show("The filter successfully rebooted", "Reboot filter", MessageBoxButtons.OK, MessageBoxIcon.Information);

}(Exception ex)

{.Show(ex.ToString(), "Reboot filter", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

}void label9_Click(object sender, EventArgs e)

{

{.Diagnostics.Process proc = new System.Diagnostics.Process();.StartInfo.FileName = FilterAdress;.StartInfo.Arguments = "Yes";

proc.Start();//Запуск консольного приложения.Close();

MessageBox.Show("The filter successfully rebooted", "Reboot filter", MessageBoxButtons.OK, MessageBoxIcon.Information);= 0;

}(Exception ex)

{.Show(ex.ToString(), "Reboot filter", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}void label6_Click(object sender, EventArgs e)

{

//Выбор программы для добавления\удаления.Visible = true;

OpenFileDialog openFile = new OpenFileDialog();.Filter = "exe files (*.exe) | *.exe";(openFile.ShowDialog() == DialogResult.OK)

{.Text = openFile.FileName.ToString();

textBox1.ReadOnly = true;

}

}

//Перевод IP для отображения в информации

private string IPtoInfo(string IP16)

{IP10 = "", str = "";aa = 0;= Convert.ToString(Convert.ToInt64(IP16, 10), 16);(IP16.Length == 7) IP16