怎么样用Delphi扫描机器端口?

解决方案 »

  1.   

    program Project1;
    {$APPTYPE CONSOLE}uses winsock,sysutils,windows;const
    startport=1;
    stopport=30;
    var
    s:tsocket;
    i,j,error:integer;
    server:tsockaddrin;
    wsa:twsadata;
    beginwriteln('===============================================================================');
    writeln('==                           Very Slow Port Scanner==');
    writeln('==                          Edit [email protected] ==');
    writeln('===============================================================================');
    writeln('             ====');
    writeln('             ====');
    writeln('=====================================================================');
    writeln('     ====');
    wsastartup(makeword(1,1),wsa);
    server.sin_family:=AF_INET;
    server.sin_addr.S_addr:=inet_addr('127.0.0.1');
    for i:=startport to stopport do
    begin
    s:=socket(AF_INET, SOCK_STREAM, 0);
    server.sin_port:=htons(i);
    error:=connect(s,server,sizeof(server));
    if error=0 then
    begin
    write('     ==   Scan port: '+inttostr(i));
    for j:=0 to 5-length(inttostr(i)) do
    write(' ');
    writeln('                                      [ok]   ==');
    closesocket(s);
    end;
    end;
    writeln('     ====');
    writeln('=====================================================================');
    writeln('             ====');
    writeln('             ====');
    writeln('============================================================================');
    writeln('==                    Thank you for your test! Good luck!==');
    writeln('==            Edit [email protected] ==');
    writeln('===========================================================================');
    wsacleanup();
    readln;
    end.