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.)
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!
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.)
// 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
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda