Visual Basic - OBTENER IPs de una red

Life is soft - evento anual de software empresarial
 
Vista:

OBTENER IPs de una red

Publicado por Hernan (4 intervenciones) el 23/12/2005 20:06:59
Hola!!!
estoy haciendo un programita para un servidor y necesito conocer las IPs de las maquinas conectadas a la red. S tienen alguito que me sirva les agredeceria muchisimo que me lo digan. Gracias de antemano por su atencion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:OBTENER IPs de una red

Publicado por Raymond J. Sutil Delgado (33 intervenciones) el 24/12/2005 13:08:27
Hola...

Primero debes dibujar un control ListBox y luego...


'coloca este código en un módulo

Public Const MAX_PREFERRED_LENGTH As Long = -1
Public Const SV_TYPE_WORKSTATION As Long = &H1
Public Const SV_TYPE_SERVER As Long = &H2
Public Const NERR_SUCCESS As Long = 0&
Public Const ERROR_MORE_DATA = 234

Public Type SERVER_INFO_100
sv100_platform_id As Long
sv100_name As Long
End Type
Public Declare Function NetServerEnum Lib "netapi32" _
(ByVal servername As Long, _
ByVal level As Long, _
buf As Any, _
ByVal prefmaxlen As Long, _
entriesread As Long, _
totalentries As Long, _
ByVal servertype As Long, _
ByVal domain As Long, _
resume_handle As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(pTo As Any, uFrom As Any, _
ByVal lSize As Long)
Public Declare Function NetApiBufferFree Lib "netapi32" _
(ByVal buffer As Long) As Long

Public Declare Function lstrlenW Lib "kernel32" _
(ByVal lpString As Long) As Long

Public Function GetPointerToByteStringW(ByVal dwData As Long) As String
Dim tmp() As Byte
Dim tmplen As Long
If dwData <> 0 Then
tmplen = lstrlenW(dwData) * 2
If tmplen <> 0 Then
ReDim tmp(0 To (tmplen - 1)) As Byte
CopyMemory tmp(0), ByVal dwData, tmplen
GetPointerToByteStringW = tmp
End If
End If
End Function



'En el General de la Form coloca:

Dim pp As String
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Function GetServers(sDomain As String) As Long
Dim bufptr As Long
Dim dwEntriesread As Long
Dim dwTotalentries As Long
Dim dwResumehandle As Long
Dim se100 As SERVER_INFO_100
Dim success As Long
Dim nStructSize As Long
Dim cnt As Long

nStructSize = LenB(se100)
success = NetServerEnum(0&, _
100, _
bufptr, _
MAX_PREFERRED_LENGTH, _
dwEntriesread, _
dwTotalentries, _
SV_TYPE_WORKSTATION Or SV_TYPE_SERVER, _
0&, _
dwResumehandle)

If success = NERR_SUCCESS And _
success <> ERROR_MORE_DATA Then
For cnt = 0 To dwEntriesread - 1

CopyMemory se100, ByVal bufptr + (nStructSize * cnt), nStructSize
List1.AddItem GetPointerToByteStringW(se100.sv100_name)
Next
End If

Call NetApiBufferFree(bufptr)
End Function



'y en el evento Load de la Form, coloca este:

Call GetServers(vbNullString)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:OBTENER IPs de una red

Publicado por Hernan (4 intervenciones) el 04/01/2006 18:31:42
Muchas gracias Raymond!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar