怎样用DELPHI作扫描端口的程序?
我听说扫描端口有一种方法就是:TCP SYN扫描 (TCP SYN Scan)
这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。该种扫描利用了TCP协议连接的第一步,但没有建立一个完整的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。
我想知道哪里能找到相关代码?
http://search.csdn.net/Expert/topic/648/648453.xml?temp=.4492761这里有个C的代码,我想找DELPHI的代码.先谢谢诸位了!
我听说扫描端口有一种方法就是:TCP SYN扫描 (TCP SYN Scan)
这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。该种扫描利用了TCP协议连接的第一步,但没有建立一个完整的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。
我想知道哪里能找到相关代码?
http://search.csdn.net/Expert/topic/648/648453.xml?temp=.4492761这里有个C的代码,我想找DELPHI的代码.先谢谢诸位了!
for port = low to high do
connect ip+port帮你顶了。。
i:integer;
SocketTest: TServerSocket;
begin
result:=8800;
SocketTest:=TServerSocket.Create(Owner);
SocketTest.Active:=true;
for i:=8800 to 9800 do
begin
socketTest.Close;
SocketTest.Port:=i;
try
SocketTest.Open;
SocketTest.Close;
SocketTest.Active:=false;
result:=i;
exit;
except
end;
end;