
Zitat von
Sebastian R.:
Dein Portscanner ist ein bisschen umständlich. Probier doch einfach mal folgenden Code:
Delphi-Quellcode:
var host: pHostEnt;
dwIP: DWORD;
sock: TSocket;
saddr: SOCKADDR_IN;
from_port, to_port, i, ret: integer;
begin
host := GetHostByName(pchar('
localhost'));
dwIP := htonl(integer(pointer(host^.h_addr^)^));
ZeroMemory(@saddr,sizeof(SOCKADDR_IN));
saddr.sin_family := AF_INET;
saddr.sin_addr.S_addr := htons(dwIP);
sock := socket(AF_INET, SOCK_STREAM, 0);
for i := from_port
to to_port
do begin
saddr.sin_port := ntohl(i);
ret := connect(sock, saddr, sizeof(saddr));
if ret = SOCKET_ERROR
do begin
// Closed
end
else begin
// Open
end;
end;
end;
Natürlich keine Garantie für die Richtigkeit, habs grad aus dem Stand getippt!
MfG, Sebastian!
Ein Portscanner interessiert mich auch, habs deswegen getestet.
Klappt alles nur bei der zeile
dwIP := htonl(integer(pointer(host^.h_addr^)^));
kommt ein fehler:
Zitat:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Project1.exe ist eine
Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0044D9FD in Modul 'Project1.exe'. Lesen von Adresse 0000000C'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------