* #include "HMG.ch"
* REQUEST HB_GT_WIN_DEFAULT // Console
// modify for Fivewin
#include "fivewin.ch"
#define SW_SHOW 5
PROCEDURE Main
LOCAL a
a := showNet()
MEMOWRIT( "Info.TXT", a)
// modify for Fivewin
ShellExecute(GetActiveWindow(), "open", "Info.TXT",,, SW_SHOW )
* _Execute ( GetActiveWindow() , , "Info.TXT", , , 5 )
RETURN
FUNCTION showNet()
LOCAL oWmi, oBoard
LOCAL bError := ERRORBLOCK( { | oErr | BREAK( oErr ) } )
LOCAL cInfo := REPLICATE( "-", 80 ) + CRLF
oWmi := WmiService()
BEGIN SEQUENCE
cInfo += "netIP" + CRLF
FOR EACH oBoard IN oWmi:ExecQuery( "SELECT * FROM Win32_NetworkAdapterConfiguration" )
cInfo += "Description : " + VAR2CHAR(oBoard:Description) + CRLF
cInfo += "MACAddress : " + VAR2CHAR(oBoard:MACAddress ) + CRLF
cInfo += "IPAddress : " + VAR2CHAR(oBoard:IPAddress ) + CRLF
cInfo += REPLICATE( "-", 80 ) + CRLF
NEXT
END SEQUENCE
ERRORBLOCK( bError )
RETURN cInfo
STATIC FUNCTION VAR2CHAR( cIn )
LOCAL cOut := hb_valToExp( cIn )
RETURN STRTRAN( cOut, '"', '' )
STATIC FUNCTION WMIService()
STATIC oWMI
LOCAL oLocator
IF oWMI == NIL
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
oWMI := oLocator:ConnectServer()
ENDIF
RETURN oWMI
*+ EOF:
FranciscoA wrote:Daniel, gracias por contestar.
Voy a hecharle un vistaso a Angry IP scaner a ver que consigo.
La informacion podria sacarla del administrador del modem, pero no encuentro como enviar la info a un .txt, ademas que éste tampoco identifica los nombres de todos los dipositivos conectados a la red wifi (ejemplo tablets )
Saludos.
#include "FiveWin.ch"
Function WMainInfo()
LOCAL oDatos, oSrv, oJob, i
LOCAL nFree:= ""
LOCAL oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
LOCAL objWMI:= oLoc:ConnectServer()
LOCAL oSistema:= objWMI:ExecQuery("Select * from Win32_PhysicalMedia")
LOCAL oDisco:= objWMI:ExecQuery("Select * from Win32_LogicalDisk")
LOCAL oParti:= objWMI:ExecQuery("Select * from CIM_DiskPartition")
LOCAL oDisket:= objWMI:ExecQuery("Select * From Win32_LogicalDisk Where DeviceID = 'A:'")
LOCAL objUnd:= objWMI:ExecQuery("Select * from Win32_MappedLogicalDisk")
LOCAL oUnd:= objWMI:ExecQuery("Select * from Win32_CDROMDrive")
LOCAL oResolu:= objWMI:ExecQuery("Select * from Win32_DesktopMonitor")
LOCAL oSistem:= objWMI:ExecQuery("Select * from Win32_OperatingSystem")
LOCAL oUsers:= objWMI:ExecQuery("Select * from Win32_Account")
LOCAL oServ:= objWMI:ExecQuery("Select * from Win32_Service Where Name = 'Themes'")
LOCAL oTime:= objWMI:ExecQuery("Select * from Win32_LocalTime")
LOCAL oProc:= objWMI:ExecQuery("Select * from Win32_Processor")
LOCAL oJbs:= objWMI:ExecQuery("SELECT Product, SerialNumber FROM Win32_BaseBoard")
LOCAL oIpSet:= objWMI:ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
LOCAL oList := objWMI:ExecQuery("Select * from Win32_ComputerSystem")
//Return(Nil)
objWMI:= oLoc:ConnectServer()
oJbs := objWMI:ExecQuery( "select * from Win32_BaseBoard" )
//oSrv:ExecQuery( "SELECT * FROM Win32_BaseBoard" )
FOR Each oDatos In oSistema
MsgInfo("Serial de fabrica: " + ALLTRIM(cValToChar(oDatos:SerialNumber)),"Numero de serie del disco duro")
NEXT
FOR Each oDatos In oDisco
MsgInfo("Unidad: " + ALLTRIM(cValToChar(oDatos:Name)) + "\ Serial: " + ALLTRIM(cValToChar(oDatos:VolumeSerialNumber)),"Unidad y serial lógico de las unidades de disco")
NEXT
FOR Each oDatos in oParti
MsgInfo(ALLTRIM(cValToChar(oDatos:Name)) + " - Tamaño: " +ALLTRIM(cValToChar(oDatos:Size)) + " En: " + ALLTRIM(cValToChar(oDatos:SystemName)) + " - Tipo: " + ALLTRIM(cValToChar(oDatos:TYPE)),"Particiones disponibles")
NEXT
FOR Each oDatos in oDisket
nFree:= oDatos:FreeSpace
IF VALTYPE(nFree) = "U"
MsgInfo("No hay diskete en la unidad A:\","Aviso del WMI de Windows")
ELSE
MsgStop("Hay un diskete en la unidad A:\","Aviso del WMI de Windows")
ENDIF
NEXT
FOR Each oDatos In objUnd
MsgInfo("Device ID: " + oDatos:DeviceID +" Nombre: " + oDatos:Name +" Espacio Libre: " + cValtoChar(oDatos:FreeSpace) + " Tamaño: " + cValtoChar(oDatos:Size),"Lista de unidades Mapeadas en Mi PC")
NEXT
FOR Each oDatos in oUnd
MsgInfo("Unidad: " + oDatos:Drive + " " + "Nombre: " + oDatos:Caption,"Unidades de CD instaladas en el equipo")
NEXT
FOR Each oDatos in oResolu
MsgInfo("Trabajando a Resolución de Alto: " + cValToChar(oDatos:ScreenHeight) + " y Ancho: " + cValToChar(oDatos:ScreenWidth),"Resolucion de Panralla")
NEXT
FOR Each oDatos In oSistem
MsgInfo(oDatos:InstallDate,"Fecha de Instalación de Windows XP")
NEXT
FOR Each oDatos in oSistem
MsgInfo("Directorio de Windows es: " + oDatos:WindowsDirectory +" Directorio del Sistema es: "+ oDatos:SystemDirectory,"Directorio de Windows y del Sistema")
NEXT
/*
FOR Each oDatos in oUsers
MsgInfo(cValToChar(oDatos:Name) + " - " + cValToChar(oDatos:Caption),"Lista de Usuarios de Windows")
NEXT
MsgInfo("Deshabilitarndo los Themes en Windows XP")
FOR Each oDatos in oServ
oDatos:StopService()
SysRefresh()
NEXT
MsgInfo("Habilitando los Themes en Windows XP")
FOR Each oDatos in oServ
oDatos:StartService()
SysRefresh()
NEXT
*/
FOR Each oDatos in oSistem
MsgInfo(oDatos:Caption + " " + oDatos:VERSION,"Sistemas operativos instalados en el PC")
NEXT
FOR Each oDatos in oTime
MsgInfo( "Día: " + cValToChar(oDatos:DAY) + CRLF +;
"Día de la semana: " + cValToChar(oDatos:DayOfWeek) + CRLF +;
"Hora: " + cValToChar(oDatos:Hour) + CRLF +;
"Minutos: " + cValToChar(oDatos:Minute) + CRLF +;
"Mes: " + cValToChar(oDatos:MONTH) + CRLF +;
"Segundos: " + cValToChar(oDatos:Second) + CRLF +;
"Semana en el mes: " + cValToChar(oDatos:WeekInMonth) + CRLF +;
"Año: " + cValToChar(oDatos:YEAR),"Dia, Hora, Mes y Año desde WMI")
NEXT
FOR EACH oDatos IN oProc
MsgInfo("El Nombre del Procesador es: "+Alltrim(cValtoChar(oDatos:Name)),"Desde WMI")
MsgInfo("la Velocidad Actual del Procesador es: "+Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz","Desde WMI")
MsgInfo("la Velocidad Màxima del Procesador es: "+Alltrim(cValtoChar(oDatos:MaxClockSpeed)) + " Mghz","Desde WMI")
NEXT
FOR EACH oDatos IN oJbs
MsgInfo("El Tipo de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:Product)),"Desde WMI")
MsgInfo("El Número de Serie de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:SerialNumber)),"Desde WMI")
NEXT
FOR EACH oDatos IN oIPSet
MsgInfo("El IPAddress es: " + Alltrim(cValtoChar(oDatos:IPAddress(0))), "Desde WMI")
MsgInfo("El MacAddress es: " + Alltrim(cValtoChar(oDatos:IPAddress(1))), "Desde WMI")
NEXT
FOR EACH oDatos IN oList
If oDatos:PartOfDomain
MsgInfo("Dominio: " + oDatos:Domain, "Desde WMI")
Else
MsgInfo("Grupo de Trabajo: " + oDatos:Domain, "Desde WMI")
EndIf
Next
Return nil
#include "FiveWin.ch"
FUNCTION Main()
LOCAL aData, cOutput
// Ejecuta el comando ARP para obtener la tabla ARP
memowrit( 'ips.bat', "arp -a > ips.txt" )
WaitRun( 'ips.bat' , 0 )
cOutput := MemoRead(".\ips.txt")
aData := hb_ATokens(cOutput, chr(10))
xbrowse(aData)
RETURN NIL
FOR EACH oDatos IN oIPSet
MsgInfo("El IPAddress es: " + Alltrim(cValtoChar(oDatos:IPAddress(0))), "Desde WMI")
MsgInfo("El MacAddress es: " + Alltrim(cValtoChar(oDatos:IPAddress(1))), "Desde WMI")
NEXT
#include "FiveWin.ch"
FUNCTION Main()
LOCAL oWnd, oBrw, aData, cOutput
// Ejecuta el comando ARP para obtener la tabla ARP
memowrit( 'ips.bat', "arp -a > ips.txt" )
WaitRun( 'ips.bat' , 0 )
cOutput := MemoRead(".\ips.txt")
aData := hb_ATokens(cOutput, chr(10))
ADEL(aData,1)
ADEL(aData,1)
ADEL(aData,1)
aData := Separar(aData)
aData := Verifica(aData)
xbrowse(aData)
RETURN NIL
STATIC FUNCTION Separar(aData)
LOCAL aData1 := {}, aData2 := {}, cText, i, j := 1
FOR i := 1 TO LEN(aData)
cText := aData[i]
if !empty(cText)
AADD(aData1,{ALLTRIM(LEFT(cText,17)),ALLTRIM(SUBSTR(cText,18,25)),ALLTRIM(RIGHT(cText,12))})
endif
NEXT i
FOR i := 1 TO LEN(aData1)
IF( aData1[i,1] > '192' .OR. aData1[i,2] = 'ff-ff-ff-ff-ff-ff')
LOOP
ENDIF
AADD(aData2,{aData1[i,1],aData1[i,2],aData1[i,3],'https://aruljohn.com/mac/'+STRTRAN(aData1[i,2],'-','')})
NEXT i
RETURN aData2
STATIC FUNCTION Verifica(aData)
LOCAL cText, i , cResult
FOR i := 1 TO LEN(aData)
cText := WebPageContents(ALLTRIM(aData[i,4]))
cResult := SUBSTR(cText,At('<tr><td>Vendor</td><td><span id="vdr14999879">',cText)+46,200 )
cResult := LEFT(cResult,At('</span>',cResult)-1)
aData[i,4] := cResult
NEXT i
RETURN aData
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Adolfredo Martinez, Google [Bot] and 69 guests