Page 1 of 1

Aporte - FullNetView()

PostPosted: Thu Nov 13, 2014 4:05 pm
by jrestojeda
Hola a todos...
Jugando un poco más con la respuesta que ofrecí en esta pregunta. Ver respuesta anterior.
Se me ocurrió darle una vuelta de rosca a dicha función para armar un array multi con más información de las PCs de una LAN.
La función devolverá un array de tres dimensiones retornando el nombre del equipo, su dirección IP y su dirección MAC, la cual es super sencilla de entender y como se verá no tiene ningún misterio, sólo se usan comando de la consola de Windows. (Para su uso quitar los MsgInfo() ya que los dejé para que se pueda visualizar fácilmente la idea.)

Code: Select all  Expand view

// DETALLE DE PCS DE UNA RED //
Function FullNetView()
Local aPCs,Q,cTexto,nLinea,cIP,cLinea,cMac

aPcs:={}

WAITRUN( "cmd.exe /c  net view > C:\PCs.txt" , .f.)

cTexto   :=MEMOREAD("C:\PCs.txt")
nLinea   :=MLCOUNT(cTexto)

FOR Q=4 TO nLinea
   cLinea:=MEMOLINE(cTexto,255,Q)
   IF LEFT(clinea,2)="\\"
      AADD(aPCs,{ALLTRIM(LEFT(cLinea,23)),"",""})
   ENDIF
NEXT

FOR Q=1 TO LEN(aPCs)

   WAITRUN( "cmd.exe /c  ping -n 1 -4 "+RIGHT(aPCs[Q][1],LEN(aPCs[Q][1])-2)+" > C:\PING.txt" , .f.)

   cTexto    :=MEMOREAD("C:\PING.txt")
   nLinea    :=MLCOUNT(cTexto)
   cLinea    :=MEMOLINE(cTexto,255,5)

   cIP       :=RIGHT(ALLTRIM(cLinea),LEN(ALLTRIM(cLinea))-RAT(" ",ALLTRIM(cLinea)))
   cIP       :=LEFT(cIP,LEN(ALLTRIM(cIP))-1)

   aPcs[Q][2]:=cIP

   WAITRUN( "cmd.exe /c  arp -a "+cIP+" > C:\ARP.txt" , .f.)

   cTexto    :=MEMOREAD("C:\ARP.txt")
   nLinea    :=MLCOUNT(cTexto)
   cLinea    :=MEMOLINE(cTexto,255,4)

   cMac      :=SUBSTR(cLinea,25,17)
   aPcs[Q][3]:=cMac


   MsgInfo("EQUIPO: "+aPcs[Q][1]+CHR(13)+;
           "IP: "+aPcs[Q][2]+CHR(13)+;
           "MAC: "+aPcs[Q][3],"Detalle del equipo")

NEXT

fErase("C:\PCs.txt")
fErase("C:\Ping.txt")
fErase("C:\ARP.txt")

Return aPCs
//
 


El uso que se le de a la función dependerá del consumidor... pero me pareció buena idea escribirla y compartirla con el foro.
Espero sea de utilidad.
Saludos a todos!

Re: Aporte - FullNetView()

PostPosted: Thu Nov 13, 2014 7:41 pm
by D.Fernandez
Excelente Esteban, muy amable, gracias.

Saludos.