La Web del Programador: Comunidad de Programadores
 
    Pregunta:  676 - LISTA DE ORDENADORES QUE CONFORMAN UNA RED
Autor:  Domingo Rodríguez Maroto
Estoy intentando hacer un programa de copias de seguridad en RED y para lo cual necesito saber la lista de ordenadores que conforman la red pero no sé como hacerlo. Lo que necesito es algo así como un DriveList ó un FileList pero de los ordenadores conectados a la red.
Gracias de antemano y un saludo

  Respuesta:  HOOVER ANTONIO LOPEZ RIVERA
Aqui te va un algoritmo que te recupera el nombre de los usuarios en una red solo necesitas agregar los nombres de los equipos en un treeview u otro objeto y anexarle el
recurso compartido ej:
la funcion te devuelve
pc1
pc2
pc3
simplemente agregale \\pc1 + el recurso compartido
\\pc\c\mis documentos Etc..

************************************************************
Private Sub Nombre_PCs()
Dim Ruta_Bat As String
Dim Ruta_txt As String
Dim Cadena_Bat As String
Dim Numeroarchivo As Integer
Dim Rshell As Long
Dim Linea As String
Dim Pos As Integer
Dim Equipos As String
Dim Nombre_Equipos As Variant
Dim Encontrado As Boolean
On Error Resume Next
Numeroarchivo = FreeFile
Ruta_txt = "c:\Temp.txt" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.."
Ruta_Bat = "c:\Temp.bat" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.."
Pos = 0
Encontrado = False
ReDim Nombre_Equipos(0 To 0)
If Dir(Ruta_Bat, vbArchive) = "" Then
Open Ruta_Bat For Binary As #Numeroarchivo
Cadena_Bat$ = "c:\windows\net view >c:\temp.txt" '//cambiar la unidad dependiendo del equipo "C:\ o D:\ etc.."
Put #Numeroarchivo, , Cadena_Bat$
Close #Numeroarchivo
End If
Rshell = Shell(Ruta_Bat, vbHide)
Open Ruta_txt For Binary As #Numeroarchivo
While Not EOF(Numeroarchivo)
Line Input #Numeroarchivo, cdna$
Pos = InStr(1, cdna$, "\")
If Pos > 0 Then
Equipos = Equipos & Trim(Mid(cdna$, 1, 17))
If Not Encontrado Then Encontrado = True
End If
W

  Respuesta:  José María Pascual García
creas una pagina con una Lista y un command cuyo código es:
´
´ frmListaRecursos.frm
´
´ Este programa muestra una lista de los
´ recursos disponibles en la red
´
Option Explicit

´ Función para copiar en una cadena el contenido
´ cuya dirección se nos facilita en un Long
Private Declare Function lstrcpy Lib "kernel32" _
Alias "lstrcpyA" (ByVal lpString1 As String, _
ByVal lpString2 As Long) As Long

´ Esta función es la encarga de enumerar
´ los recursos partiendo de la Raiz dada, que
´ se utilizará según el valor dado en Uso
Private Sub EnumeraRecursos(Raiz As String, Uso As Long)
´ Identificador de la enumeración
Dim IdEnumeracion As Long
´ para iniciar y obtener datos de la enumeración
Dim DatosRecurso As NETRESOURCE2
Dim DatosInicio As NETRESOURCE
´ Otras variables locales
Dim Espacios As String
Dim Codigo As Long, Cadena As String

´ Preparamos espacio en la cadena
Cadena = String(256, 0)

´ Si no se ha facilitado un punto de inicio
If Raiz = "" Then
´ comenzamos enumerando todo
Codigo = WNetOpenEnum(RESOURCE_GLOBALNET, _
RESOURCETYPE_ANY, 0, ByVal 0, _
IdEnumeracion)
Else ´ en caso contrario
´ si se facilita un proveedor
If Uso = RESOURCEDISPLAYTYPE_PROVIDER Then
´ lo asignamos a lpProvider
DatosInicio.lpProvider = Raiz
Else ´ en caso contrario es un recurso
DatosInicio.lpRemoteName = Raiz
E

  Respuesta:  Gorka Oiarzabal
No entiendo muy bien lo que quieres hacer, pero prueba a hacer un filelist, pero que esté direccionado al escritorio y a entorno de red. Si esto te funciona, no tienes mas que configurar la vista de entorno de red, para que en vez de aparecer el nombre del equipo, aparezca la descripción.

De esta manera sabrás con mayor detalle qué equipos tienes.

Otra solución podría pasar por utilizar Telnet, pero ahí no se cómo va.

Si me entero de algo te lo contaré