30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
1
.NET 4.x

Проверка портов - открыты или нет

30.07.2011, 01:34. Показов 7150. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как программно сделать проверку портов? Допустим в текстбоксе пишешь порт нажимаешь на кнопку он этот порт проверяет и если он открыт в лабеле пишется что открыт... А если закрыт соответственно пишет что закрыт...

P.S

Я даже не знаю с чего начать ... А тема мне очень интересна
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.07.2011, 01:34
Ответы с готовыми решениями:

Брак или нет и проверка
1)купил в интернете HDD после установки в сист блок только с 5 попытки удалось форматнуть а после...

Проверка таблиц есть или нет
Всем привет!!! У меня один вопрос можно ли узнать в базе таблица есть или нет, например хочу...

Проверка существует ли изображение или нет
Всем здрасти. Вот я решил написать такую маленькую простую программку галерею рисунков, ну в...

Проверка: загружена форма или нет?
Как узнать загружена (Form2) или нет?

30
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
30.07.2011, 04:54 2
сори за то что грязновато старался побырее написать

вот так можно получить все айпи сервера который хочешь проверить на порты.(все записи попадают в листбокс2)

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox2.Items.AddRange(clsGetPort.GetAllIp(TextBox1.Text, 80))
        Button1.Text = If(Button1.Text = "stop", "play", "stop")
     End Sub
 
Public Class clsGetPort
        Public Shared Function GetAllIp(ByVal serv As String, ByVal port_ As Integer) As String()
            Dim lip As New List(Of String)
            Try
                Dim ip As Net.IPHostEntry = Net.Dns.GetHostEntry(serv)
                Dim ip_ As Net.IPAddress = Nothing
                For Each ip_ In ip.AddressList
                    Dim endpoint_ As New Net.IPEndPoint(ip_, port_)
                    Dim tmpsock As New Net.Sockets.Socket(endpoint_.AddressFamily, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
                    tmpsock.Connect(endpoint_)
                                     If tmpsock.Connected Then
                        lip.Add(String.Format("{0}", ip_.ToString))
                        Continue For
                    End If
                    lip.Add(ip_.ToString)
                Next
            Catch ex As Exception
                lip.Add("Unknown ip")
            End Try
 
            Return lip.ToArray
 
        End Function
    End Class

Но так лучше не использовать, так как дальше вариант проще и быстрее(имхо)

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
               Dim ip As Net.IPHostEntry = Net.Dns.GetHostEntry(TextBox2.Text) ' В текстбоксе2 - имя сервера(допустим [url]www.mail.ru[/url]..)
        For Each i As Net.IPAddress In ip.AddressList
            ListBox2.Items.Add(i.ToString) 'заполняем листбокс2 айпишками
        Next
 
        ListBox2.SelectedIndex =0 'выделяем допустим первый итем(иначе нужно переписывать некоторые строчки кода)
 
        Dim th As New Threading.Thread(AddressOf General)
        th.IsBackground = True 
        th.Start()
    End Sub
 
Sub General()
        Dim s As Net.Sockets.Socket
        'Dim i_ip As Net.IPAddress = Net.IPAddress.Parse(TextBox2.Invoke(New d(AddressOf return_selecteditem))) 
        'Dim i_ip As String = ListBox2.SelectedItem)
        Dim i_ip As Net.IPAddress = Net.Dns.GetHostEntry(TextBox1.Invoke(New d(AddressOf return_selecteditem))).AddressList(0)
        Dim ipe As Net.IPEndPoint = Nothing
        For i As Integer = NumericUpDown1.Value To NumericUpDown2.Value '&H7FFF
            conclusion.Invoke(New _D_(AddressOf invok), "Прослушивается порт №: " & i & "...")
            ipe = New Net.IPEndPoint(i_ip, i)
            s = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
            's = New Net.Sockets.Socket(ipe.AddressFamily, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
            Try
                s.Connect(ipe)
                'If s.Connected Then
                'ListBox1.Items.Add("***CONNECT!*: Port- " & i & " : EndPoint: " & ipe.ToString)
                'End If
                conclusion.Invoke(New d_(AddressOf inaddition), Color.Blue, "***** Удачная попытка соединения c портом - " & i & " : по следующему конечному адресу: " & ipe.ToString & " *****" & ControlChars.CrLf)
                conclusion.Invoke(New d_(AddressOf inaddition), Color.FromKnownColor(KnownColor.WindowText), Environment.NewLine) 'Color.FromName("windowtext")
            Catch ex As Exception
                conclusion.Invoke(New _D_(AddressOf invok), "ERR:- " & i & " :" & ex.Message & vbCrLf)
            End Try
            s.Close()
        Next
        PictureBox1.Image = Image.FromFile("F:\разное\VS2010ImageLibrary\_Common Elements\Objects\Web_Globe.png")
    End Sub
 
    'инвоки для контролов(иначе будут исключения, думаю понятно на что)
    Delegate Function d()
    Function return_selecteditem() As String
        Return TextBox1.Text ' тут возвращаем в процедуру  "General"  выделенный(из литбокса_2 в текстбокс_1) айпи 
    End Function
 
    Delegate Sub d_(ByVal clr As Color, ByVal _str As String)
    Sub inaddition(ByVal clr As Color, ByVal _str As String)
        conclusion.SelectionColor = clr
        conclusion.SelectedText = _str
    End Sub
 
    Delegate Sub _D_(ByVal str As String)
    Sub invok(ByVal _str As String)
        If conclusion.InvokeRequired Then
            conclusion.BeginInvoke(New _D_(AddressOf invok), _str)
        Else
            conclusion.AppendText(_str & ControlChars.NewLine)
        End If
    End Sub
 
  Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
        If ListBox2.SelectedItem Is Nothing Then Return
        TextBox1.Text = ListBox2.SelectedItem ' как только выделился нужный нам итем в листбоксе_2 то он сразу же отобразится в текстбоксе_1
    End Sub
На форму закинь TextBox2 - сервер : TextBox1 - айпи который проверяем(в итоге, его можно поменять выбрав в листбоксе другой selectedIndex)
ListBox2 - где отобразятся все айпи сервера(во множественном числе - потому что в основном мощные сервера имеют не один адрес)
NumericUpDown1 - начальный порт
NumericUpDown2 - конечный . Но сразу скажу, что кроме 80 порта больше не куда не залезишь(не подконнектишься), в основном только он открыт(так сказать негласное правило)
conclusion(RichTextBox) - где отображается вся информация..
Button1 думаю понятно для чего
П.С.
Я и сам не люблю ковыряться в чужом коде(чужие мысли потемки, особенно когда кодер через чур правильный, когда переменновывается все подряд, аж префикс соблюдается)
Но тут запутать может только инвоки и делегаты
Как то так

Добавлено через 3 минуты
а, да, там где закомментирован код, то извиняй, можешь не смотреть, но вообще это я для себя оставляю как другие варианты решения задачи
2
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
30.07.2011, 05:16  [ТС] 3
А что в строке сервер надо писать если я хочу просканить себя?
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
30.07.2011, 05:30 4
в тупик поставил, сча попробую, погоди..

Добавлено через 5 минут
пиши либо так
VB.NET
1
Environment.UserDomainName либо так Net.Dns.GetHostName
а лучше сразу занеси в событие кнопки эти строчки(для пробы)
допустим так(ну как и выше, просто нагляднее)
VB.NET
1
2
3
4
 Dim ip As Net.IPHostEntry = Net.Dns.GetHostEntry(Net.Dns.GetHostName) 'Environment.UserDomainName)
        For Each i As Net.IPAddress In ip.AddressList
            ListBox2.Items.Add(i.ToString) 'заполняем листбокс2 айпишками
        Next
localhost не пиши, будет проверять не подключенную сеть

Добавлено через 1 минуту
VB.NET
1
My.Computer.Name
или это. Как говорится вариантов кучка

Добавлено через 2 минуты
попробуй с www.yandex.ru, у него много айпи, ты хоть какой попробывал(какэто слово пишется не помню в полшестого сайт?
1
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
30.07.2011, 05:32  [ТС] 5
Спасибо ... Помог... Теперь буду сам разбираться и пробовать )

Добавлено через 1 минуту
Яндекс, майл, сайт своей сети... Все норм работает ... Везде кроме сайта сети открыт тока 80 порт как ты и сказал
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
30.07.2011, 05:35 6
что значит своей сети яндекс и т.д...они что как то маршрутизируются через другие адреса?
А сайт твоей сети через какой порт? мне интересно хотя бы 2 получал открытых? не где проверить ёма
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
30.07.2011, 05:39  [ТС] 7
www.sunnet.net.ru

Я не помню уже какие там точно порты открыты... Лень заного сканить
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
30.07.2011, 05:46 8
вся соль в твоем вопросе это перебор порта в классе Net.IPEndPoint .
ipe = New Net.IPEndPoint(i_ip, i) (тут, просто перебор портов с определенным заранее айпи, правда у меня соединение оч долго происходит, на каждый порт секунд по 15, ужос, а вот если на свой домен проверять то быстро, хз от чего это зависит, мб просто ближе )


Добавлено через 2 минуты
хочешь вскрыть сайт?

Добавлено через 3 минуты
там тока один айпи, и как то странно ты отсканировал множество портов, дабы говорить что все другие закрыты
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
30.07.2011, 05:48  [ТС] 9
Он мне несколько показал 80 и еще какие то два... Нет сайт вскрыть не хочу ... Просто интересна стала эта тема
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
30.07.2011, 22:59 10
а разве можно свои порты прослушивать?
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
30.07.2011, 23:48  [ТС] 11
Да вроде можно ... Покрайне мере через сайт это сделать можно
http://www.2ip.ru/check-port/?... c0070ef7fc
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
31.07.2011, 02:08 12
просканировал 3000 портов(1 час заняло) и не один не отвечает..Значит нельзя себя слушать? или нужно фаерволл подстраивать, хз
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2011, 02:26  [ТС] 13
Насчет файрволла я не знаю... Но он в полне может блочить... Вот проверка через сай
[IMG]http://s016.***********/i335/1107/e0/f660a46ebb10.jpg[/IMG]
[IMG]http://s52.***********/i137/1107/ea/1feb259ecb1d.jpg[/IMG]
[IMG]http://s13.***********/i186/1107/c1/f6587f73a705.jpg[/IMG]

А с проги не хочет что то

Добавлено через 23 секунды

Не по теме:

Сори что ссылки не нашел тег для картинок :)

0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
31.07.2011, 02:30 14
ого, прикольно ,скинь адрес сайта. Значит неверно указываем имя хоста. Хотя как еще вписывать свой хост не понятно кроме энтих что выше
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2011, 02:36  [ТС] 15
http://www.2ip.ru/check-port/
По идее должен быть localhost но ты вроде говорил что так не прокатывает
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
31.07.2011, 03:04 16
непойму чего то. При заходе на этот сайт он мне показывает мой айпи, но это не мой айпи. Или это дело в роутере, он видать так сделан, к сожалению я в первый раз связался с роутором и ничего про них не знаю. Так вот: я стал опять сканить порты с хостом "localhost" и оказалось что открыт 135 порт. Ввожу на сайте этот порт и оказывается что порт закрыт. Проверяю через сайт 80 порт, у меня он открыт, а через код не открыт. Может попробовать сканировать через тот айпи что сайт указывает
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2011, 03:09  [ТС] 17
При заходе на этот сайт он мне показывает мой айпи, но это не мой айпи.
Он показывает твой внешний айпи (не локальный)... Если конечно ты к прокси не подключен
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2011, 03:09  [ТС] 18
При заходе на этот сайт он мне показывает мой айпи, но это не мой айпи.
Он показывает твой внешний айпи (не локальный)... Если конечно ты к прокси не подключен
0
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
31.07.2011, 03:12 19
не получается с этим айпи, ошибка "этот хост не известен". Внешний айпи роутера получается? или сетевой карты
0
30 / 30 / 3
Регистрация: 25.05.2011
Сообщений: 308
31.07.2011, 03:13  [ТС] 20
Сайты сканит айпи получает порты сканирует... А вот сам себя не фига не хочет... Уже как только не пробовал
0
31.07.2011, 03:13
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.07.2011, 03:13
Помогаю со студенческими работами здесь

Проверка на загруженный файл или нет
if (!File.Exists(richTextBox1.Text)) { ...

Проверка конец файла или нет
Подскажите пожалуйста если читаю числа типа int и не знаю когда конец файла как это...

Проверка простое число или нет
Здравствуйте! Подскажите как можно проверить простое число или нет в TASM, хотя бы алгоритм...

Проверка интернета. Работает или нет?
Подскажите как это реализовать? Нужно по нажатию кнопки, чтоб мне выдало работает ли мой...

Проверка установлен или нет EXCEL
Всем добрый вечер! Есть программа в которой по нажатию на одну из кнопок запускается EXCEL файл....

Проверка запущено приложение или нет?
Подскажите пожалуйста. Как определить, что данное приложение уже запущено?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
Как обойтись без проверки на null, чтобы избежать NullPointerExce­ption в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:voi­­d(0)­"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru