para paginas modificar modificado etc descargar bloquear archivo delphi tcp udp delphi-2010

delphi - paginas - modificar archivo host windows 10



¿Cómo puedo identificar los hosts de Windows en una subred con Delphi? (2)

¿Por qué no usa un escáner como nmap para esto?

Y si no puede por alguna razón, puede leer sobre cómo lo hacen.

Compruebe la detección remota del sistema operativo y los métodos de toma de huellas dactilares TCP / IP admitidos por Nmap. Espero que esto ayude.

Tengo una aplicación administrativa que me gustaría ser capaz de "descubrir" hosts de Windows en la misma subred especificada por el usuario o por el usuario. ¿Cuál cree que es la mejor manera de descubrir rápidamente si una variedad de hosts están en línea, usando Delphi?

Consideré hacer ping a los hosts (posiblemente usando WMI y Delphi ), pero creo que puede haber una manera más confiable. Me preocupa que los clientes puedan estar configurados para no responder a las solicitudes de ping. Usando nbtscan , puedo obtener rápidamente una lista de los hosts de Windows en mi subred:

nbtscan 192.168.1.0/24

Me gustaría poder replicar esta funcionalidad, pero no estoy seguro de dónde comenzar. Actualmente estoy usando el componente ICS creado por François Piette para Delphi 2010.

Doy la bienvenida a cualquier sugerencia.


Después de algunas excavaciones, encontré este proyecto en Sourceforge que demuestra cómo realizar una búsqueda de NetBios en un solo host utilizando los componentes de Indy. Probé y este proyecto funciona bien con Delphi 2010. Esto podría, por supuesto, modificarse para realizar consultas de NetBios en un rango de direcciones.

NBLookup

unit uNbLookup; interface (************************************************************ 06-02-2007 - Petricca Antonio ([email protected]) Free for any purpose... Thanks to: Jim Halfpenny http://directory.fsf.org/security/misc/nbtstat.pl.html ************************************************************) uses IdGlobal, IdUDPClient, SysUtils, Windows; function NetBiosLookup(AAddress: PChar; AHostName: PChar; ATimeOut: Integer): BOOL; stdcall; implementation const NB_REQUEST = #$A2#$48#$00#$00#$00#$01#$00#$00 + #$00#$00#$00#$00#$20#$43#$4b#$41 + #$41#$41#$41#$41#$41#$41#$41#$41 + #$41#$41#$41#$41#$41#$41#$41#$41 + #$41#$41#$41#$41#$41#$41#$41#$41 + #$41#$41#$41#$41#$41#$00#$00#$21 + #$00#$01; NB_PORT = 137; NB_BUFSIZE = 8192; function NetBiosLookup(AAddress: PChar; AHostName: PChar; ATimeOut: Integer): BOOL; stdcall; var Buffer : TIdBytes; I : Integer; RepName : String; UDPClient : TIdUDPClient; begin RepName := ''''; Result := False; UDPClient := nil; if not Assigned(AHostName) then Exit; try UDPClient := TIdUDPClient.Create(nil); with UDPClient do begin Host := Trim(AAddress); Port := NB_PORT; Send(NB_REQUEST); end; SetLength(Buffer, NB_BUFSIZE); if (0 < UDPClient.ReceiveBuffer(Buffer, ATimeOut)) then begin for I := 1 to 15 do RepName := RepName + Chr(Buffer[56 + I]); RepName := Trim(RepName); StrPCopy(AHostName, RepName); Result := True; end; except Result := False; end; if Assigned(UDPClient) then FreeAndNil(UDPClient); end; end.