Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: айпи и аттач Добавлено: 28.08.05 02:40  

Автор вопроса:  Alexander
скажу сразу вопрос номер 1 не из легких (для меня), ради него я поднял свой логин: как определить айпишники компа если их два или больше (имею 4 и надо работать со всеми одновременно), и паралельно листинг портов на них?

вопрос номер 2

аттач и слив файла к емайлу в совместимой с bat форме неговоря про браузер

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 28.08.05 17:03
1) Сканировать (кажись 137, могу ошибаться) или пинговать. Кстати, исходники и примеры то есть, посмотри, должен найти!

2) Тоже самое, полное примеров, атач в base64, потом тем же винсоком по smtp слить масаж

Ответить

Номер ответа: 2
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #2 Добавлено: 28.08.05 18:25
ну насчет 2 вопроса это понятно разобраться можно, а вот по первому ничего вразумительного и рабочего не смог найти, или не работает или не так, возможно DaSharm этим занимался, кстати никто не знает когда он вернется, 10 как в прошлом году?
а то никак не могу прогу протестить путается в айпишниках (((

Ответить

Номер ответа: 3
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #3 Добавлено: 28.08.05 23:06
Попробуй это, у меня вроде работает, но у меня один модем и две локалки, везде по одному IP.
На форме один ListBox.

Private Sub Form_Load()
strComputer = "."
Set objWMIService = GetObject _
    ;("winmgmts:" & "!\\" & strComputer & "\root\cimv2";)
Set colAdapters = objWMIService.ExecQuery _
    ;("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True";)
For Each objAdapter In colAdapters
    If Not IsNull(objAdapter.IPAddress) Then
        For i = LBound(objAdapter.IPAddress) To UBound(objAdapter.IPAddress)
            List1.AddItem "IP address: " & objAdapter.IPAddress(i)
        Next
    End If
Next
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #4 Добавлено: 28.08.05 23:15
так, это уже намного лучше

Ответить

Номер ответа: 5
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #5 Добавлено: 28.08.05 23:49
Так не понял. Работает? Кстати есть хелп по WMI от
SCINER с Исходников.

Ответить

Номер ответа: 6
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #6 Добавлено: 29.08.05 05:40
немного тормозно работает, но главное работает, сенькс тебе огромный, а линк можеш на WMI кинуть?

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 29.08.05 07:10
1) GetIpAddrTable

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 29.08.05 12:12
Даже не поленился, примерчик накатал:
Private Declare Function GetIpAddrTable Lib "IPHLPAPI.dll" (ByRef pIpAddrTable As Any, ByRef pdwSize As Long, ByVal border As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

'typedef struct _MIB_IPADDRROW {
'  ;DWORD dwAddr;
'  ;DWORD dwIndex;
'  ;DWORD dwMask;
'  ;DWORD dwBCastAddr;
'  ;DWORD dwReasmSize;
'  unsigned short unused1;
'  unsigned short unused2;
'}

Private Type MIB_IPADDRROW
    dwAddr As Long
    dwIndex As Long
    dwMask As Long
    dwBCastAddr As Long
    dwReasmSize As Long
    unused As Long
End Type

Private Sub Command1_Click()
    Text1 = GetIPTable()
End Sub

Private Function GetIPTable() As String
    Dim miar() As MIB_IPADDRROW
    Dim buff() As Byte
    Dim dwSize As Long
    Dim dwNumEntries As Long
    
    GetIpAddrTable Null, dwSize, True
    ReDim buff(dwSize)
    GetIpAddrTable buff(0), dwSize, True
    CopyMemory dwNumEntries, buff(0), LenB(dwNumEntries)
    ReDim miar(dwNumEntries)
    
    For i = 0 To dwNumEntries - 1
        CopyMemory miar(i), buff(LenB(dwNumEntries) + LenB(miar(0)) * i), LenB(miar(0))
    Next
    
    For i = 0 To dwNumEntries - 1
        GetIPTable = GetIPTable & _
            "IP: " & Long2IP(miar(i).dwAddr) & _
            "; Subnet: " & Long2IP(miar(i).dwMask) & vbCrLf
    Next
End Function

Private Function Long2IP(ByVal IP As Long) As String
    Dim t As Long
    For i = 0 To 3
        t = IP Mod 256
        If t < 0 Then
            t = t + 256
            IP = &H1000000 - Abs(IP) \ 256 - 1
        Else
            IP = IP \ 256
        End If
        Long2IP = Long2IP & CStr(t) & "."
    Next
    Long2IP = Left(Long2IP, Len(Long2IP) - 1)
End Function

Ответить

Номер ответа: 9
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #9 Добавлено: 29.08.05 12:28
а линк можеш на WMI кинуть?

В том хелпе
есть хелп по WMI от
SCINER с Исходников.
собрана куча скриптов, т.е. для VB требуется небольшая переделка. Куда кинуть то?

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 29.08.05 17:13
Сорри, я в первый в начале не врубился, я думал ты про 4 айпи в локалке...

Ответить

Номер ответа: 11
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #11 Добавлено: 30.08.05 20:21
Всем спасибо, все работает.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам