Поиск на сайте
Главная Журнал Форум Wiki DRKB Страны мира

Сканер портов в VB.NET

Описываемый здесь пример позволяет получить информацию об открытых портах в системе (локальной или удалённой). Достаточно задать IP-адресс и нажать кнопку "Start".

Использование кода

'Объявляем глобальные переменные
    Dim host As String
    Dim port As Integer
    Dim counter As Integer

Основной код

Основная часть кода содержится в обработчике таймера. При каждом тике таймера в блоке try/catch происходит подключение к порту. Если соединение успешное, то во второй листбокс выводится сообщение о том, что порт открыт.

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      'Инициализируем переменные: хост, порт и счётчик
        counter = counter + 1 'счётчик для таймера
        TextBox2.Text = counter
        host = TextBox1.Text
        port = TextBox2.Text
        ' Далее создаём сокет и пытаемся подключиться.
     
        Dim hostadd As System.Net.IPAddress = System.Net.Dns.GetHostEntry(host).AddressList(0)
        Dim EPhost As New System.Net.IPEndPoint(hostadd, port)
        Dim s As New System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, _
        System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
        Try
            s.Connect(EPhost)
        Catch
        End Try
        If Not s.Connected Then
            ListBox1.Items.Add("Port " + port.ToString + " is not open")
        Else
            ListBox1.Items.Add("Port " + port.ToString + " is open")
            ListBox2.Items.Add(port.ToString)
        End If
        Label3.Text = "Open Ports: " + ListBox2.Items.Count.ToString
    End Sub

Кнопка Start

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Add("Scanning: " + TextBox1.Text)
        ListBox1.Items.Add("-------------------")
        Button2.Enabled = True
        Button1.Enabled = False
        Timer1.Enabled = True
        Timer1.Start()
    End Sub

Загрузка формы и кнопка Stop

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button2.Enabled = False
        TextBox2.Text = "0"
        'устанавливаем счётчик в 0
        counter = 0
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'кнопка stop
        Timer1.Stop()
        Timer1.Enabled = False
        Button1.Enabled = True
        Button2.Enabled = False
    End Sub




Основные разделы сайта


 

Реклама Реализуем нетканые материалы от производителя.