Aporte - FullNetView()

Aporte - FullNetView()

Postby jrestojeda » Thu Nov 13, 2014 4:05 pm

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  RUN

// 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!
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Aporte - FullNetView()

Postby D.Fernandez » Thu Nov 13, 2014 7:41 pm

Excelente Esteban, muy amable, gracias.

Saludos.
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 488
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 92 guests