Ir al contenido



Foto

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


3 respuestas en este tema

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 710 mensajes
  • LocationPinar del Río, Cuba

Escrito 27 febrero 2017 - 04:29

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
  • 710 mensajes
  • LocationPinar del Río, Cuba

Escrito 28 febrero 2017 - 10:13

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


Editado por JoAnCa, 28 febrero 2017 - 10:13 .

  • 0

#3 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 mensajes
  • LocationLa Habana

Escrito 04 marzo 2017 - 08:54

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

  • Moderadores
  • PipPipPip
  • 3.689 mensajes
  • LocationMadrid - España

Escrito 05 marzo 2017 - 05:54

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



Responder en este tema