Программные средства для определения адресов узлов и каналов, сетевой аутентификации.


Лабораторная работа № 2

Программные средства для определения адресов узлов и каналов, сетевой аутентификации.

Теоретический материал.

Пространство имен System.Net содержит сетевые классы для поиска IP – адресов, сетевой аутентификации, разрешений, отправки и получения данных.

Чтобы получить IP – адрес из DNS – имени хоста или получить имя хоста из IP  — адреса, можно использовать класс Dns.

IP – адреса обрабатываются в классе IPAddress. У одного хоста может быть несколько IP— адресов и алиасов. Вся эта информация содержится в классе IPHostEntry.  Когда мы ищем имя, класс Dns возвращает объект типа IPHostEntry.

Для создания  объекта IPAddress в десятичной нотации с точками используется статический метод Parse ( ).

IPAddress adr = IPAddress. Parse ( “ 192.168.0.3”);

В самом классе IPAddress IP – адрес хранится в целочисленном поле, к которому можно обратиться с помощью свойства Address. Метод ToString ( ) возвращает десятичную нотацию с точками.

IPAddress.Loopback – возвращает предопределенный адрес обратной связи 127.0.0.1. этот адрес используется не для соединения с сетью, а для локальных операций на одной машине.

IPAddress.Broadcast – возвращает широковещательный IP – адрес. В широковещательных сообщениях можно посылать данные всем компьютерам в локальной сети.

IPAddress. Any – если у компьютера несколько сетевых плат с несколькими IP – адресами, то сокет будет ожидать действия на любом из сетевых интерфейсов.

Разрешение имени в IP – адрес.

Чтобы получить IP— адрес из имени хоста используется метод Dns.Resolve ( ), который возвращает не только IPAddress, но и объект IPHostEntry, который содержит массив адресов, альтернативные имена (алиасы) и само имя хоста.

IPHostEntry N = Dns.Resolve (“имя хоста” );

Получение списка адресов: N.AddressList.

Получение списка алиасов: N.Aliases.

Получение реального имени хоста: N.HostName.

Чтобы получить имя хоста локального компьютера, используется метод Dns.GetHostName ( ).

 

Для авторизации пользователя можно использовать экземпляр класса        NetworkCredential, который содержит свойства Password и UserName.

Пример использвания данного класса:

public partial class Form1 : Form

{

NetworkCredential B = new NetworkCredential(«aaa», «123»);

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if ((B.UserName.Equals(textBox1.Text)) && (B.Password.Equals(textBox2.Text)))

MessageBox.Show(«OK»);

else MessageBox.Show(«NO!!!!»); }   }

Каналы

Канал используется для коммуникации между клиентом .NET и сервером. Среда .NET поставляется с классами каналов, которые общаются с помощью TCP или HTTP. Можно создать специальные каналы для других протоколов.

Канал HTTP применяется большинством служб Web. Он использует для коммуникации протокол HTTP, так как брандмауэры обычно имеют открытым порт 80, чтобы клиенты могли получить доступ к серверам и службам Web. Прием на порту 80 также находится в распоряжении этих клиентов.

В Интернете используется и канал TCP, но здесь брандмауэры должны специально конфигурироваться, чтобы клиенты получали доступ к указанному порту канала TCP. Канал TCP по сравнению с HTTP может применяется для коммуникации более эффективно в интранет.

В структуре серверного и клиентского приложения могут быть созданы объекты  — каналы, для реализации удаленной передачи данных.

Следующий код показывает, как можно создать канал, идентифицируемый портом 8086 и использующий для передачи протокол ТСР:

Подключить пространство имен:

using   System.Runtime.Remoting.Channels .Тср;

//…

TcpServerChanael   channel1   = new   TcpServerChannel(8086);

Конструктор TcpClientChannel по умолчанию выбирает доступный порт, который передается серверу во время соединения, чтобы сервер мог послать данные назад клиенту.

Создание нового экземпляра канала немедленно включает прослушивание состояния, которое можно проверить, вводя в командной строке netstat   —a.

Каналы HTTP используются аналогично каналам TCP.

Для применения класса TcpServerChannel необходимо сослаться на сборку System.Runtime.Remoting. dll, для этого выбрать Add Reference, в появившемся окне из списка выбрать пункт System.Runtime.Remoting.

Пример, показывающий как можно остановить режим прослушивания канала:

channel1.StopListening(null);

ВЫПОЛНИТЬ САМОСТОЯТЕЛЬНО:

Создать windows – приложение, которое реализует следующие функции:

  1. Отображает в заголовке окна IP – адрес компьютера, на котором запущено приложение.
  2. Отображает в объекте Label формы

«Логическое имя компьютера – имя (получение с помощью функций System.Net) »

  1. Форма приложения должна содержать поле со списком адресов хостов, например mail.ru и д.р. При выборе пункта списка происходит вывод полной информации о хосте, то есть список IP- адресов, реальное имя хоста и алиасы.
  2. Если введенные в текстовые поля значения имени пользователя и пароля верны, то

Вариант 1:  создается ТСР канал.

Вариант 2:  создается ТСР канал с указанием в текстовом поле номера порта.

Вариант 3:  останавливается ранее созданный ТСР канал.

Вариант 4:  создается два ТСР канала.

Вариант 5:  создается два ТСР канала, номера портов генерируются в заданном диапазоне.

Вариант 6:  значения пароля генерируются автоматически, останавливается ранее созданный ТСР канал.

Загрузка...