📄 searchportthread.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 + -