⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchportthread.pas

📁 用Delphi编写的一个多线程端口扫描程序代码
💻 PAS
字号:
{
  ------------------------------------------------
     本程序由“啊D”制作!
     QQ:9269563
     E-Mail:paf@163.net
     主页:Http://coold.cn99.com

  **你可以随意修改代码! 但在转载时请保留此声名!**
  ------------------------------------------------
}
unit SearchPortThread;

interface

uses
 Classes, SysUtils, StdCtrls, winsock,windows,Forms;

type
  TSearchPortThread = class(TThread)
  public
    constructor Create(Show_Config: TMemo; Addr: TSockAddr);
  private
  tShowConfig:TMemo;
  tAddr:TsockAddr;
  TempRe:integer;
//  ShowData:string;
    procedure AddPort;
    { Private declarations }
  protected
    procedure Execute; override;
  end;


implementation

uses main;
{ TSearchPortThread }
//端口说明
function PortSM(port:integer):string;
begin
case port of
  7:Result:=' echo';
  9:Result:=' discard';
  11:Result:=' systat';
  13:Result:=' daytime';
  15:Result:=' netstat';
  17:Result:=' qotd';
  19:Result:=' chargen';
  20:Result:=' ftp-data';
  21:Result:=' FTP 服务器';
  23:Result:=' telnet';
  25:Result:=' smtp 服务器(邮箱接收服务器)';
  37:Result:=' time | timserver';
  39:Result:=' resource location';
  42:Result:=' name | nameserver';
  43:Result:=' usually to sri-nic';
  53:Result:=' name-domain server';
  57:Result:=' deprecated';
  67:Result:=' boot program server';
  69:Result:=' tftp';
  77:Result:=' rje';
  79:Result:=' Finger';
  80:Result:=' www 网页浏览默然端口';
  87:Result:=' link | ttylink';
  95:Result:=' supdup';
  101:Result:=' usually from sri-nic';
  102:Result:=' iso-tsap';
  103:Result:=' ISO Mail';
  104:Result:=' x400-snd';
  105:Result:=' csnet-ns';
  109:Result:=' Post Office';
  110:Result:=' Pop3 服务器(邮箱发送服务器)';
  111:Result:=' portmap 或 sunrpc';
  113:Result:=' auth | authentication';
  115:Result:=' sftp';
  117:Result:=' path 或 uucp-path';
  119:Result:=' Network News Transfer';
  123:Result:=' network time protocol (exp)';
  137:Result:=' nbname';
  138:Result:=' nbdatagram';
  139:Result:=' nbsession';
  144:Result:=' NeWS | news';
  153:Result:=' sgmp | sgmp';
  158:Result:=' PCMAIL';
  161:Result:=' snmp | snmp';
  162:Result:=' snmp-trap |snmp';
  170:Result:=' network PostScript';
  175:Result:=' vmnet';
  315:Result:=' load';
  400:Result:=' vmnet0';
  500:Result:=' sytek';
  512:Result:=' exec';
  513:Result:=' login';
  514:Result:=' shell | cmd';
  515:Result:=' printer | spooler';
  517:Result:=' talk';
  518:Result:=' ntalk';
  520:Result:=' efs';
  526:Result:=' tempo | newdate';
  530:Result:=' courier | rpc';
  531:Result:=' conference | chat';
  532:Result:=' netnews | readnews';
  533:Result:=' netwall';
  540:Result:=' uucp | uucpd';
  543:Result:=' klogin';
  544:Result:=' kshell';
  550:Result:=' new-rwho | new-who';
  556:Result:=' remotefs | rfs_server';
  600:Result:=' garcon';
  750:Result:=' kerberos | kdc';
  751:Result:=' kerberos_master';
  754:Result:=' krb_prop';
  888:Result:=' erlogin';
  1109:Result:=' kpop';
  1524:Result:=' ingreslock';
  2053:Result:=' knetd';
  5555:Result:=' rmt | rmtd';
  5556:Result:=' mtb | mtbd';
  9535:Result:=' man';
  9536:Result:=' w';
  9537:Result:=' mantst';
  10000:Result:=' bnews';
  10001:Result:=' queue';
  10002:Result:=' poker';
else Result:=format(' %s 号端口',[inttostr(port)]);
end;
end;

constructor TSearchPortThread.Create(Show_Config:TMemo;Addr:TSockAddr); //创建线程
begin
  inherited Create(False);
  tShowConfig:=Show_Config;   //绑定控件
  Taddr:=Addr;   //绑定
  FreeOnTerminate := True; //确定当线程终止时是否自动删除线程对象。TRUE 为删除!
end;

//-扫描的端口输出
procedure TSearchPortThread.AddPort;
var
TempPort:integer;
begin
if form1.StopThread then exit; //如果已按了停止按钮就退出(即不再输出扫描到的端口)
  tempPort:=ntohs(taddr.sin_port);
  tshowconfig.Lines.Add(format(' %-4s    %s',[inttostr(tempPort),PortSM(tempPort)]));
end;

procedure TSearchPortThread.Execute;
var
skt:TSOCKET;
WSAData:Twsadata;
Re:integer;
begin
try
sleep(100);
    if (Wsastartup(MAKEWORD(2,0),wsadata)<>0) then exit;  //初始化Sock
    skt:=Socket(AF_INET,SOCK_STREAM,0); //建立Socket
    if (skt = INVALID_SOCKET) then exit; //如果建立Socket出错就退出
    Re:=connect(skt,Taddr,sizeof(taddr)); //建立 Socket 连接
    if Re=0 then begin
        Synchronize(AddPort);   //如果端口打开就把内容显示在文本框中
    end;
    if Terminated then Exit;
finally
    closesocket(skt); //关闭Socket
    Wsacleanup(); //关闭winsock
end;
end;

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -