IP сканер

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

IP сканер

Сообщение HotKitten » 06.12.2005 (Вт) 23:46

у кого нибудь есть исходник IP сканера???
Изображение

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 07.12.2005 (Ср) 9:18

тебе что нужно узнать есть ли компьютер в сети с определённым IP
или сканировать IP в определённых промежутках

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.12.2005 (Ср) 13:09

И то и то делаеться простой попыткой поднлючения к компьютеру через winsock...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.12.2005 (Ср) 13:12

а если надо просканировать сеть класса С?
сколько времени займёт?

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 07.12.2005 (Ср) 14:28

сканирование одного IP займёт от 1 до 3 секунд

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.12.2005 (Ср) 14:38

Класса C - немного. Там всего 254 комопа. :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 07.12.2005 (Ср) 15:46

bayasaa писал(а):сканирование одного IP займёт от 1 до 3 секунд

это слишком много

надо бы сканировать IP например от 192.168.1.0 до 192.168.1.255 и узнать есть ли кто в сети
Изображение

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 07.12.2005 (Ср) 15:49

Вообшем ниже написанная программа даёт ответ есть ли в сети компьютер с определённым IP ему без разницы какого класса этот IP
Код: Выделить всё

Const SOCKET_ERROR = 0
Private Type WSAdata
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To 255) As Byte
    szSystemStatus(0 To 128) As Byte
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    lpVendorInfo As Long
End Type
Private Type Hostent
    h_name As Long
    h_aliases As Long
    h_addrtype As Integer
    h_length As Integer
    h_addr_list As Long
End Type
Private Type IP_OPTION_INFORMATION
    TTL As Byte
    Tos As Byte
    Flags As Byte
    OptionsSize As Long
    OptionsData As String * 128
End Type
Private Type IP_ECHO_REPLY
    Address(0 To 3) As Byte
    Status As Long
    RoundTripTime As Long
    DataSize As Integer
    Reserved As Integer
    data As Long
    Options As IP_OPTION_INFORMATION
End Type

Private Type T_Host
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type

Private Declare Function GetHostName Lib "wsock32.dll" Alias "gethostname" (ByVal hostname As String, HostLen As Long) As Long




Private Declare Function gethostbyaddr Lib "wsock32.dll" (addr As Long, ByVal addr_len As Long, ByVal addr_type As Long) As Long
Private Declare Function GetHostByName Lib "wsock32.dll" Alias "gethostbyname" (ByVal hostname As String) As Long
Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAdata As WSAdata) As Long
Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean
Private Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, ReplyBuffer As IP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean


Private Declare Function lstrlenA Lib "kernel32" (ByVal Ptr As Any) As Long
Private Declare Function inet_addr Lib "wsock32.dll" (ByVal addr As String) As Long


Dim hFile As Long, lpWSAdata As WSAdata
Dim hHostent As Hostent, AddrList As Long
Dim Address As Long, rIP As String
Dim OptInfo As IP_OPTION_INFORMATION
Dim EchoReply As IP_ECHO_REPLY
Dim a As String
Dim i As Integer
Dim host As String




Call WSAStartup(&H101, lpWSAdata)
    'Call WSAStartup(&H101, lpWSAdata)
    hostname = router.Text
   
    If GetHostByName(hostname + String(64 - Len(hostname), 0)) <> SOCKET_ERROR Then
        CopyMemory hHostent.h_name, ByVal GetHostByName(hostname + String(64 - Len(hostname), 0)), Len(hHostent)
        CopyMemory AddrList, ByVal hHostent.h_addr_list, 4
        CopyMemory Address, ByVal AddrList, 4
    End If
    hFile = IcmpCreateFile()
    If hFile = 0 Then
        MsgBox "Unable to Create File Handle"
        Exit Sub
    End If
    OptInfo.TTL = 255
    If IcmpSendEcho(hFile, Address, String(32, "A"), 32, OptInfo, EchoReply, Len(EchoReply) + 8, 2000) Then
        rIP = CStr(EchoReply.Address(0)) + "." + CStr(EchoReply.Address(1)) + "." + CStr(EchoReply.Address(2)) + "." + CStr(EchoReply.Address(3))
    End If
    If EchoReply.Status = 0 Then
        MsgBox "Reply from " + HostName + " (" + rIP + ") recieved after " + Trim$(CStr(EchoReply.RoundTripTime)) + "ms"
         MsgBox "есть в сети"
             Else
                MsgBox "нет в сети"
    End If

так что вместо MsgBox можно показать что тебе угодно и где угодно

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 07.12.2005 (Ср) 15:53

я извиняюсь но я забыл сказать что 1-3 секунды уходить на сканирование 10-15 компьютеров

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.12.2005 (Ср) 15:59

мой пример
Вложения
MyNet.zip
(106.73 Кб) Скачиваний: 70

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 07.12.2005 (Ср) 16:33

2 ANDLL конечно же 254, вот и возьми при скорости 10-15 сек на такую сетку, тебе нравится? мне нет!
а если B, то ...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.12.2005 (Ср) 17:44

Замечу, что указанные способы делают имеено то, о чем я говорил...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 07.12.2005 (Ср) 19:23

Мне кажется, пингование каждого айпишника - единственный способ. А скорость... Большинство нормальных сканеров работают в многопоточном режиме, что в ВБ нереализуемо.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.12.2005 (Ср) 19:27

Можно подумать, многопоточность возьмет и волшебным образом расширит канал связи... Или заставит удаленный компьютер отвечать быстрее.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.12.2005 (Чт) 8:43

Andrev писал(а):Большинство нормальных сканеров работают в многопоточном режиме, что в ВБ нереализуемо.

Смешно.
Lasciate ogni speranza, voi ch'entrate.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 08.12.2005 (Чт) 11:38

ANDLL писал(а):Можно подумать, многопоточность возьмет и волшебным образом расширит канал связи... Или заставит удаленный компьютер отвечать быстрее.

Да не просто в каждом потоке отдельный диапазон будет сканироваться :)
Если всё делать своими ручками, они скоро отвалятся !

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.12.2005 (Чт) 12:28

Ну так реализуй многопоточность. Уж для таких целей не грех использовать EXE-сервер и отдельный класс для каждой подсетки...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.12.2005 (Чт) 13:04

Многопоточность... сервер... класс... Про бритву Оккама слыхали?

Элементарщина - загрузить хоть все 254 винсока массивом и за раз опросить все адреса. Такой санер я сделал еще только начиная изучать вб. Сетку с двумястами машин опрашивал секунд за двадцать, и то эти двадцать секунд приходились на винсоки, подключавшиеся к выключенным компам.
Лучший способ понять что-то самому — объяснить это другому.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 08.12.2005 (Чт) 23:56

отличный сканер в нем даже есть сканер портов, хотелось бы сделать такой же но немного для других целей
очень высокая скорость сканирования адресов и портов
Вложения
ipscan.rar
(102.96 Кб) Скачиваний: 895
Изображение

Iq51
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 06.12.2004 (Пн) 15:30

Сообщение Iq51 » 09.12.2005 (Пт) 4:07

Пример сканера диапазона IP-адресов по заданному порту, с многопоточностью. Можно задавать время ожидания отклика.
Писал как тест для сравнения скорости и надежности сканирования с другими сканерами.
Вложения
Scaner.rar
(3.01 Кб) Скачиваний: 77

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 09.12.2005 (Пт) 15:49

спасибо
надеюсь что это будет то что мне надо
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 10.12.2005 (Сб) 17:13

Iq51
Rulezzz отличная вещь
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 165

    TopList