IP, Mac Address, Name desde mi modem

Re: IP, Mac Address, Name desde mi modem

Postby FranciscoA » Fri Jun 28, 2024 3:18 am

Aqui podemos ver el resultado de lo que estoy haciendo, y lo que consigo con el codigo de Daniel.
https://ibb.co/bPQsrMZ
Last edited by FranciscoA on Sun Jun 30, 2024 4:32 am, edited 2 times in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2134
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: IP, Mac Address, Name desde mi modem

Postby sysctrl2 » Fri Jun 28, 2024 7:41 pm

Buen trabajo, felicidades !
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 982
Joined: Mon Feb 05, 2007 7:15 pm

Re: IP, Mac Address, Name desde mi modem

Postby FranciscoA » Fri Jun 28, 2024 8:37 pm

Aqui está con las modif de César y Danielmaximiliano
Code: Select all  Expand view
#include "FiveWin.ch"

FUNCTION Main()    //Probando()
  local aDispConect := {}, cDir := TrueName(".\")
  local cTexto, n, nLineas, cLinea, cIP, cMac, cNombre, cIpInterfaz, cFabricante

  WAITRUN( "
cmd.exe /c  arp -a > " +cDir+ "\ARP.txt" , .f.)
  //WaitRun("
Notepad.exe " +cDir+ "\ARP.txt")

  cTexto  := MEMOREAD(cDir + "
\ARP.txt")
  nLineas := MLCOUNT(cTexto)

  //Agreg dispositivo desde donde se corre el programa. El .txt solo presenta la IP
  cLinea      := MEMOLINE(cTexto,255,2)  //en linea 2 esta la ip del equipo desde donde se corre
  cIpInterfaz := SUBSTR(cLinea,11,12)
  WsaStartUp()
  cNombre := GetHostName()
  WsaCleanUp()  

  cMac        := MacAddrHost()
  cFabricante := Fabricante(AllTrim(STRTRAN(cMac,'-','')))  

  AAdd( aDispConect, { cIpInterfaz, cMac, cNombre, cFabricante} )
  //Fin Agreg dispositivo desde donde se corre el programa

  For n := 4 To nLineas      //En lin 4 del .txt comienzan las ip y mac
     cLinea  := MEMOLINE(cTexto,255,n)
     cIP     := SUBSTR(cLinea,3,20)
     cMac    := SUBSTR(cLinea,25,21)  
     WsaStartUp()
     cNombre := GetHostByAddress(AllTrim(cIP))  //Obtiene nombre a partir de la IP  
     WsaCleanUp()
     cNombre := if(empty(cNombre),AllTrim(cIP),cNombre)      
     cFabricante := Fabricante(AllTrim(STRTRAN(cMac,'-','')))    

     if Substr(AllTrim(cIP),1,9) == Substr(AllTrim(cIpInterfaz),1,9) .and. AllTrim(cMac) <> "
ff-ff-ff-ff-ff-ff"
        AAdd( aDispConect, { cIP, cMac, cNombre ,cFabricante} )
     endif
  Next

  SysRefresh()

  XBROWSER aDispConect TITLE "
Dispositivos Conectados" ;
     SETUP ( oBrw:cHeaders := {"
IP", "MAC", "DISPOSITIVO","FABRICANTE"} )

 RETURN NIL

STATIC FUNCTION Fabricante(cMac)  //Cesar (cmsof)
LOCAL cText, i , cResult
cText := WebPageContents('https://aruljohn.com/mac/'+cMac)
cResult := SUBSTR(cText,At('<tr><td>Vendor</td><td><span id="
vdr14999879">',cText)+46,200 )    
cResult := LEFT(cResult,At('</span>',cResult)-1)
RETURN cResult


//Codigo de Danielmaximiliano
// memberlist.php?mode=viewprofile&u=2388
//----------------------------------------------//
STATIC function MacAddrHost()
local oCollection1, oCollection2, obj1, obj2
local nInd := 1, IPAddress, MACAddress, aInfo := {}
local oLoc := CreateObject( "
wbemScripting.SwbemLocator" )
local oWMI := oLoc:ConnectServer()

    oCollection1 := oWMI:ExecQuery( "
SELECT * FROM Win32_NetworkAdapter WHERE Manufacturer != 'Microsoft' AND NOT PNPDeviceID LIKE 'ROOT\\%'" )
    oCollection2 := oWMI:ExecQuery( 'SELECT * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE' )
    For Each obj1 In oCollection1
        For Each obj2 In oCollection2
            IPAddress   := obj2:IPAddress(0)  
            MACAddress  := obj2:MACAddress(0)
            aadd( aInfo,{ IPAddress, MACAddress } )
        Next
    Next
 
    RELEASE oLoc, oWMI

return Alltrim( aInfo[1,2] )
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2134
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: IP, Mac Address, Name desde mi modem

Postby cmsoft » Fri Jun 28, 2024 10:29 pm

Muy buen trabajo Francisco!
Gracias por compartirlo!!!
User avatar
cmsoft
 
Posts: 1236
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: IP, Mac Address, Name desde mi modem

Postby Danielmaximiliano » Sat Jun 29, 2024 2:58 am

Antonio Linares wrote:gracias Daniel! :-)

Hola Antonio y a todos los integrantes del foro.
en mis tiempos libres miro el foro y como este post todavia no tiene final sigo viendo una resolución al mismo :wink:
viendo que ARP -a devuelve en algunos casos no toda la informacion ya que en casa con la Notebook solo devuelve mi Notebook y
el TVSmart con conexion cableada, en el caso que use el Wifi de la Notebook devuelve todas las conexiónes (Address Resolution Protocol)
buscando informacion sobre ARP encontre https://github.com/QbsuranAlang/arp-scan-windows-/tree/main un utilitario para CMD que es para
x86 y x64 y devuelve una informacion completa y simple, como se puede recompilar con Visual Studio 17 mi pregunta es.....
¿ se puede convetir a .LIB o .DDL en vez de .EXE y si es posible redirecciónar a un archivo .CVS o devolver a una variable ?
si descargan desde el sitio el .zip dentro estan los .EXE para probar desde CMD, la linea de comando es asi
arp-scan -t 192.168.1.1/50 > ip.txt

PD: no se como se sube una imagen aqui
Danielmaximiliano
 
Posts: 22
Joined: Tue Mar 20, 2012 11:06 pm

Re: IP, Mac Address, Name desde mi modem

Postby Antonio Linares » Sat Jun 29, 2024 8:09 am

> PD: no se como se sube una imagen aqui

Puedes crear un repositorio gratuito en github, subir allí tus imágenes y aqui copias la URL de la imagen en tu repo en github
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41469
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: IP, Mac Address, Name desde mi modem

Postby Danielmaximiliano » Sat Jun 29, 2024 3:24 pm

FranciscoA wrote:César, muy bien!

Como bien dices, solo falta obtener la MAC del equipo anfitrión, y los nombres de los demás dispositivos que no son computadoras.

Continuaremos investigando.

Saludos.

Hola Francisco :
para obtener el nombre de equipo con cmd
C:\Users\danie>nbtstat -n

Avast SecureLine VPN:
Dirección IP del nodo: [0.0.0.0] Id. de ámbito : []

No hay nombres en la caché

Ethernet:
Dirección IP del nodo: [192.168.1.40] Id. de ámbito : []

Tabla de nombres locales NetBIOS

Nombre Tipo Estado
---------------------------------------------
DANIEL <20> Único Registrado
DANIEL <00> Único Registrado
WORKGROUP <00> Grupo Registrado

Wi-Fi:
Dirección IP del nodo: [0.0.0.0] Id. de ámbito : []

No hay nombres en la caché


no se puede obtener nombres si no pertenecen a una red, en este caso el router es solo una puerta de enlace hacia internet enmascarando la ip local con la ip publica del modem
por ello no se puede obtener el nombre mediante NBTSTAT -A iplocal para obtener su nombre.. SLDS
Danielmaximiliano
 
Posts: 22
Joined: Tue Mar 20, 2012 11:06 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 68 guests