Jump to content


Photo

Como saber por codigo si un dispositivo es un Router o una PC


3 replies to this topic

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 27 February 2017 - 04:29 PM

Hola a todos

Pues eso, hay alguna forma de determinar mediante codigo delphi, si dando la IP saber el tipo de dispositivo que es?

Si es un router o un PC

 

Aunque generalmente (en mis subredes) la IP de los router termina con 1 (x.x.x.1),  no puedo tomarlo como criterio, por si casualmente hay alguno q no sea asi.

 

El problema es al obtener determinados datos del hardware, dominio y otros, que un router no tiene, y mi software se queda "dormido" o se bloquea cuando le hace el escaneo a un router.

 

Esto es en el caso de cuando hago una exploracion completa de la red, recorriendo un rango de IPs

 

Lo mismo me sucede con los servidores linux, pero eso pudiera ser tema para otro post

 


  • 0

#2 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 28 February 2017 - 10:13 AM

Como todavia no he podido identificar a los routers, por ahora lo que haré es tomar el criterio de la IP terminar 1 al detectar el Dominio, que es uno de los parametros que capto globalmente y que el router no tiene


Edited by JoAnCa, 28 February 2017 - 10:13 AM.

  • 0

#3 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 posts
  • LocationLa Habana

Posted 04 March 2017 - 08:54 PM

Aquí en la habana hicimos un sito con una base de datos y tenemos registrado todos los equipos tanto nanos routers todo y si se hace un net scan y se encuentra una dirección y no aparece registrado aguántate que si no lo justificas se le aplica medida, Y además queda registrada. Eso que tú quieres es para una red en la que tú no tienes control????

 

Saludos


  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 05 March 2017 - 05:54 AM

Esta función de devuelve la IP de tu GateWay:


delphi
  1. type
  2.  
  3. PIP_ADDR_STRING = ^IP_ADDR_STRING;
  4. IP_ADDR_STRING = record
  5.   Next: PIP_ADDR_STRING;
  6.   IpAddress: array [0..15] of AnsiCHAR;
  7.   IpMask: array [0..15] of AnsiCHAR;
  8.   Context: DWORD;
  9. end;
  10.  
  11. PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
  12. IP_ADAPTER_INFO = record
  13.   Next: PIP_ADAPTER_INFO;
  14.   ComboIndex: DWORD;
  15.   AdapterName: array [0..259] of AnsiCHAR;
  16.   Description: array [0..131] of AnsiCHAR;
  17.   AddressLength: UINT;
  18.   Address: array [0..7] of BYTE;
  19.   Index: DWORD;
  20.   Type_: UINT;
  21.   DhcpEnabled: UINT;
  22.   CurrentIpAddress: PIP_ADDR_STRING;
  23.   IpAddressList: IP_ADDR_STRING;
  24.   GatewayList: IP_ADDR_STRING;
  25.   DhcpServer: IP_ADDR_STRING;
  26.   HaveWins: BOOL;
  27.   PrimaryWinsServer: IP_ADDR_STRING;
  28.   SecondaryWinsServer: IP_ADDR_STRING;
  29.   LeaseObtained: Longint;
  30.   LeaseExpires: Longint;
  31. end;
  32.  
  33. function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: ULONG): DWORD; stdcall; external 'iphlpapi.dll';
  34.  
  35. //.....................................
  36.  
  37.  
  38.  
  39. function GetGateWay: String;
  40. var
  41. pAI: PIP_ADAPTER_INFO;
  42. AILen: DWORD;
  43. begin
  44. Result:= '';
  45. GetAdaptersInfo(nil, AILen);
  46. GetMem(pAI, AILen);
  47. if GetAdaptersInfo(pAI, AILen) = 0 then
  48. Result:= pAI.GatewayList.IpAddress;
  49. FreeMem(pAI);
  50. end;

Saludos.


  • 0



Reply to this topic



  


IP.Board spam blocked by CleanTalk.