close

Вход

Забыли?

вход по аккаунту

?

kurs (2)

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
ФЕДЕРАЦИИ
ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО
ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ МЭИ»
в г. Смоленске
Кафедра
вычислительной техники
Расчетно-пояснительная записка
ПО КУРСУ «Сети ЭВМ»
Тема: Работа с DNS.
Студент:
Павлов А. А.
Группа:
ВМ-08
Преподаватель:
Панкратова Е.А.
Смоленск
2012
Оглавление
1. Введение ............................................................................................................ 3
2. Техническое задание......................................................................................... 4
3. Анализ технического задания .......................................................................... 5
4. Проектирование ................................................................................................ 6
4.1 Диаграмма вариантов использования....................................................... 6
4.2 Диаграмма классов ..................................................................................... 6
4.3 Блок-схемы алгоритмов ............................................................................. 7
5. Реализация ......................................................................................................... 8
5.1 Описание разработанного ПО ................................................................... 8
5.2 Тестирование ............................................................................................... 9
5.2.1 Функциональное тестирование ........................................................... 9
Заключение ............................................................................................................ 11
Приложение 1 ........................................................................................................ 12
1. Введение
DNS (англ. Domain Name System — система доменных имён) —
компьютерная распределённая система для получения информации о
доменах. Чаще всего используется для получения IP-адреса по
имени хоста (компьютера или устройства), получения информации о
маршрутизации почты, обслуживающих узлах для протоколов в домене
(SRV-запись).
Распределённая
база
данных DNS
поддерживается
с
помощью
иерархии DNS-серверов, взаимодействующих по определённому протоколу.
Основой
DNS
является
представление
об
иерархической
структуре доменного имени и зонах. Каждый сервер, отвечающий за имя,
может делегировать ответственность за дальнейшую часть домена другому
серверу (с административной точки зрения — другой организации или
человеку), что позволяет возложить ответственность за актуальность
информации на серверы различных организаций (людей), отвечающих
только за «свою» часть доменного имени.
Начиная с 2010 года, в систему DNS внедряются средства проверки
целостности
передаваемых
данных,
называемые DNS
Security
Extensions (DNSSEC). Передаваемые данные не шифруются, но их
достоверность проверяется криптографическими способами. Внедряемый
стандарт DANE обеспечивает передачу средствами DNS достоверной
криптографической информации (сертификатов), используемых для
установления
безопасных
и
защищённых
соединений транспортного и прикладного уровней.
2. Техническое задание
Разработать оконную утилиту, для обращения к системе DNS (определение
доменных имен по IP-адресам, IP-адресов по доменным именам и т.д. –
аналог утилиты NSLookUp).
3. Анализ технического задания
В настоящее время существует множество утилит и сервисов, позволяющих
узнать IP-адрес по доменному имени и наоборот.
Одной из наиболее распространенных является утилита NSLookUp,
включенная корпорацией Microsoft в ОС Windows.
Работа c NSLookUp происходит в консоли, где пользователь при помощи тех
или иных команд может узнать необходимую информацию.
Так например запрос на вывод IP-адресов некоторого домена (wikipedia.org)
выглядит следующим образом.
>nslookup wikipedia.org
wikipedia.org
Adresses: 74.86.197.160
208.87.34.15
Исходя из примера, видим, что NSLookUp выводит все IP-адреса,
закрепленные за доменом.
Таким образом в результате выполнения технического задания должно
получиться оконное приложение, которое будет выводить все IP-адреса
прикрепленные к домену, или имя домена по IP-адресу.
Приложение не должно быть перегружено лишними функциями и его
интерфейс должен быть интуитивно-понятен даже неопытному
пользователю.
4. Проектирование
4.1 Диаграмма вариантов использования
Получение IP-адреса
по доменному имени
Работа с DNS
Получение доменного
имени по IP-адресу
Пользователь
Рисунок 4.1 – Диаграмма вариантов использования
4.2 Диаграмма классов
Network
Form1
+HostName : string
+IPList : List<string>
+DNStoIP()
+IPtoDNS()
-Button1 : Button
-Button2 : Button
-Button3 : Button
-Button4 : Button
-Button5 : Button
-label1 : Label
-ListBox1 : ListBox
-textBox1 : TextBox
-button1_Click()
-button2_Click()
-button3_Click()
-button4_Click()
-button5_Click()
-textBox1_KeyPress()
Рисунок 4.2 – Диаграмма классов
4.3 Блок-схемы алгоритмов
Начало
Начало
Получение
доменного имени,
для которого
нужно получить Ip
Получение IP по
которому нужно
узнать доменное
имя
Создание списка
IP, связанных с
доменом
Вычисление
доменного имени
Конец
Конец
Рисунок 4.3 – Блок-схемы алгоритмов работы с системой DNS
Начало
Ввод
данных
Введен IP
Вызов метода получения
IP, связанных с доменом
Вызов метода
преобразования IP в
доменное имя
Вывод
списка IP
Вывод
доменного
имени
Конец
Рисунок 4.4 – Блок-схема алгоритма нажатия на кнопку действия
5. Реализация
5.1 Описание разработанного ПО
Было разработано следующее приложение:
Рисунок 5.1 – Скриншот работающего приложения (вывод списка IP-адресов)
Рисунок 5.2 – Скриншот работающего приложения (вывод доменного имени)
Как видно из скриншотов, разработанная программа представляет собой
простое оконное приложение.
Для удобства пользователя были добавлены несколько необязательных
кнопок, например кнопка копирующая текст из выделенной строки ListBox’а
в буфер обмена, кнопка копирующая текст из буфера обмена в TextBox и
кнопка, очищающая TextBox.
5.2 Тестирование
5.2.1 Функциональное тестирование
Функциональное тестирование также известно, как тестирование методом
«черного ящика». При этом неизвестна внутренняя структура ПО и исходные
коды, но известна спецификация продукта.
Первым делом проверим работы ПО на корректных данных.
Рисунок 5.1 – Тестирование на корректных данных
Далее попробуем ввести несуществующее доменное имя или бессмысленный
набор символов.
Рисунок 5.2 – Ввод неверного доменного имени
Как видно из рисунка (5.2), при вводе неверного доменного имени программа
сообщает пользователю об ошибке.
Теперь проверим работу программы в случае ввода несуществующего, либо
неверного IP-адреса.
Рисунок 5.3 – Ввод неверного IP-адреса
Как видно из рисунка (5.3), при вводе неверного IP-адреса программа
сообщает пользователю об ошибке.
Таким образом тестовый набор представляет из себя следующее:
Входные данные
Результат
213.180.204.11
metrika.yandex.ru
wikipedia.org
208.80.152.201
wikipedia124.org
Сообщение об ошибке
jflksjdflkdsjhfkjsdf
Сообщение об ошибке
192.168.1.9
Сообщение об ошибке
999.999.999.999
Сообщение об ошибке
Таким образом по результатам тестирования можно сделать вывод, что
программа работает корректно на корректных данных.
При вводе некорректных данных программа уведомляет пользователя об
ошибке.
Заключение
В ходе выполнения курсового проекта было разработано приложение,
выполняющее работу с системой DNS (определение доменных имен по IPадресам, IP-адресов по доменным именам).
Разработанное приложение работает корректно на корректных данных и
удовлетворяет требования технического задания.
Приложение 1
Network.cs
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Net;
System.Windows.Forms;
namespace DNStoIP
{
class Network
{
public static List<string> IPlist = new List<string>();
public static string HostName;
public static void DNStoIP(string DNS)
{
try
{
IPAddress[] addresslist = Dns.GetHostAddresses(DNS);
foreach (IPAddress address in addresslist)
{
IPlist.Add(address.ToString());
}
}
catch (Exception e)
{
MessageBox.Show("Введен несуществующий либо неверный адрес!");
}
}
public static void IPtoDNS(string IP)
{
try
{
IPAddress address = IPAddress.Parse(IP);
IPHostEntry entry = Dns.GetHostEntry(address);
HostName = entry.HostName.ToString();
}
catch (Exception e)
{
MessageBox.Show("Введен несуществующий либо неверный адрес!");
}
}
}
}
Form1.cs
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
System.Net;
namespace DNStoIP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IPAddress ip;
if(IPAddress.TryParse(textBox1.Text, out ip) == true)
{
listBox1.Items.Clear();
Network.HostName = string.Empty;
Network.IPtoDNS(textBox1.Text);
listBox1.Items.Add(Network.HostName);
}
else
{
listBox1.Items.Clear();
Network.IPlist.Clear();
Network.DNStoIP(textBox1.Text);
foreach (string s in Network.IPlist)
{
listBox1.Items.Add(s);
}
}
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar.Equals((char)13))
{
button1_Click(sender, e);
}
}
private void button2_Click(object sender, EventArgs e)
{
Clipboard.SetText(listBox1.SelectedItem.ToString());
}
private void button4_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
private void button5_Click(object sender, EventArgs e)
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
textBox1.Text = (String)iData.GetData(DataFormats.Text);
}
else
{
MessageBox.Show("Возможно буфер обмена пуст или содержит данные неверного
формата!");
}
}
}
}
Документ
Категория
Компьютеры, Программирование
Просмотров
27
Размер файла
725 Кб
Теги
kurs
1/--страниц
Пожаловаться на содержимое документа