实现效果图:(windows窗体版)
实现效果图:(控制台版)
端口扫描器大家都不陌生吧,用着别人的端口扫描器,虽说方便,但是如果能够做一个,当然是一个赏心悦目的事。其实,实现自己的端口扫描器并不困难。而且原理也比较简单,只要我们具备基础的网络知识,明白tcp三次握手原则即可。
C#提供一组网络编程的类,使网络编程更加简单优美。其中,Socket封装了大多数用于网络通讯的api,要实现端口扫描,我们只需使用Socket.Connect()方法。然后再判断Socket.Connected是否为真,如果为真 ,则表明该端口可以连接,也就是说该端口是开放的。所以,判断一个端口是否开放的代码如下:
public void ThreadFunc(object o)
{
int port = (int)o;
ScanSocket s = new ScanSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Port = port;
IPEndPoint ipport = new IPEndPoint(scanIP, port);
try
{
// s.BeginConnect(ipport, new AsyncCallback(EndConnect), s);
s.Connect(ipport);
if (s.Connected == true)