IP, Mac Address, Name desde mi modem
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
IP, Mac Address, Name desde mi modem
Hola Todos.
Existe alguna function en FiveWin o xHarbour que me devuelva listado o array de todos los dispositivos conectados al modem-router, que incluya ip, mac address, name?
Alguien que pueda compartir algun codigo?
Gracias de antemano.
Existe alguna function en FiveWin o xHarbour que me devuelva listado o array de todos los dispositivos conectados al modem-router, que incluya ip, mac address, name?
Alguien que pueda compartir algun codigo?
Gracias de antemano.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- JoseAlvarez
- Posts: 807
- Joined: Sun Nov 09, 2014 5:01 pm
Re: IP, Mac Address, Name desde mi modem
+1
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- jrestojeda
- Posts: 601
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Re: IP, Mac Address, Name desde mi modem
Hola,
Yo hace muchos años había escrito esto:
https://forums.fivetechsupport.com/view ... ullnetview
Prueba a ver si te sirve.
Saludos,
Yo hace muchos años había escrito esto:
https://forums.fivetechsupport.com/view ... ullnetview
Prueba a ver si te sirve.
Saludos,
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
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
Gracias, Esteban.
El caso es que en ninguno de mis dos equipos con Windows 10 funciona el net view.
Saludos.
El caso es que en ninguno de mis dos equipos con Windows 10 funciona el net view.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
Alguien mas?
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Re: IP, Mac Address, Name desde mi modem
hi.
to get MACadress you can use WMI on each PC
this CODE use HMG Syntax, modify for Fivewin
to get MACadress you can use WMI on each PC
this CODE use HMG Syntax, modify for Fivewin
Code: Select all | Expand
* #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:
greeting,
Jimmy
Jimmy
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: IP, Mac Address, Name desde mi modem
Hola Jimmy:
Francisco necesita saber las IP con sus datos "Nombre de PC" y "Direccion MAC"
el comando "Net View" no funciona en windows 10 y 11 ya que pertenece a el protocolo SMB 1.0 que Microsoft recomienda no usar pero es posible usar activando 3 servicios en windows.
Net View nos da el nombre
nbtstat /A {direccion} nos da la direccion MAC (tampoco funciona en W10-11)
se deberia usar un poco de C y crear una libreria , ejemplos opensource hay varios y el que me gusto es Angry IP Scanner pero esta diseñado en java pero su interfaz es simple y intuitiva.
SLDS
Francisco necesita saber las IP con sus datos "Nombre de PC" y "Direccion MAC"
el comando "Net View" no funciona en windows 10 y 11 ya que pertenece a el protocolo SMB 1.0 que Microsoft recomienda no usar pero es posible usar activando 3 servicios en windows.
Net View nos da el nombre
nbtstat /A {direccion} nos da la direccion MAC (tampoco funciona en W10-11)
se deberia usar un poco de C y crear una libreria , ejemplos opensource hay varios y el que me gusto es Angry IP Scanner pero esta diseñado en java pero su interfaz es simple y intuitiva.
SLDS
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
Gracias Jimmy.
Desafortunadamente desconozco HMG.
Sin embargo hice prueba con WMI como lo he hecho anteriormente con otros comandos, y los resultados no son los que esperaba.
elseif nOption == 7
oQry := oWMI:ExecQuery( "SELECT * FROM Win32_NetworkAdapterConfiguration" )
aTitCols:= {"Caption", "Description","MacAddress","IpAddress"}
for each oPC in oQry
aadd( aInfo,{ oPC:Caption, oPC:Description, oPC:MacAddress, oPC:IpAddress } )
next
Desafortunadamente desconozco HMG.
Sin embargo hice prueba con WMI como lo he hecho anteriormente con otros comandos, y los resultados no son los que esperaba.
elseif nOption == 7
oQry := oWMI:ExecQuery( "SELECT * FROM Win32_NetworkAdapterConfiguration" )
aTitCols:= {"Caption", "Description","MacAddress","IpAddress"}
for each oPC in oQry
aadd( aInfo,{ oPC:Caption, oPC:Description, oPC:MacAddress, oPC:IpAddress } )
next
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
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.
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.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: IP, Mac Address, Name desde mi modem
Uso Fing para escritorio o Fing para android.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.
También estoy fijando me sobre librerías de descubrimiento de dispositivos IP .. hay una disponible pero no tengo instalado visual 15 para poder compilar con Make de mingw
- Willi Quintana
- Posts: 1023
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: IP, Mac Address, Name desde mi modem
Estimado, echale un ojo a esto:
Code: Select all | Expand
#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
Re: IP, Mac Address, Name desde mi modem
Francisco, se que no es exactamente lo que estas buscando, pero tal vez pueda ser una convinacion del comando ARP con otros
Te dejo algo que estuve probando para este caso, es algo simple, pero es una punta
Te dejo algo que estuve probando para este caso, es algo simple, pero es una punta
Code: Select all | Expand
#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
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
Willi, muchas gracias.
Saludos.
El codigo funciona, pero... siempre los peros... el resultado es del equipo local. La IP está ok, pero la MAC es diferente a la que muestra arp -a.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
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- FranciscoA
- Posts: 2159
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: IP, Mac Address, Name desde mi modem
Hola César.
Precisamente hasta ahí he llegado, usando arp -a
Muchas gracias.
Precisamente hasta ahí he llegado, usando arp -a
Muchas gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Re: IP, Mac Address, Name desde mi modem
Francisco
Aca usando un poco de una pagina que te indica cual es el fabricante del dispositivo, tal vez te sirva un poco mas
Esta medio poco eficiente el codigo, pero en mi caso me funciono con los dispostivos que tengo conectados en casa
Es muy parecido a lo que me da el producto IP Scanner
Creo que lo que no me da es mi PC, porque hago el ipconfig y yo tengo la ip que falta
El lunes puedo probar en el trabajo a ver que me tira
Espero que al menos te de una punta
Saludos
Aca usando un poco de una pagina que te indica cual es el fabricante del dispositivo, tal vez te sirva un poco mas
Code: Select all | Expand
#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
Es muy parecido a lo que me da el producto IP Scanner
Creo que lo que no me da es mi PC, porque hago el ipconfig y yo tengo la ip que falta
El lunes puedo probar en el trabajo a ver que me tira
Espero que al menos te de una punta
Saludos