-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathPortScanner.cs
More file actions
executable file
·104 lines (84 loc) · 5.3 KB
/
Copy pathPortScanner.cs
File metadata and controls
executable file
·104 lines (84 loc) · 5.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace ST.Library.Network
{
public abstract class PortScanner : IPortScanner, IDisposable
{
internal bool _IsDisposed = false;
public bool IsDisposed {
get { return _IsDisposed; }
}
public uint Scan(uint uIP, int nPort) {
//return this.Scan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), 3, 3000, 1, 18000, false);
return this.OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), 3, 3000, 1, 60000, false);
}
public uint Scan(uint uIP, int nPort, int nProbes) {
//return Scan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, 3000, 1, ((nProbes + 1) * 2 * 3000), false);
return OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, 3000, 1, 60000, false);
}
public uint Scan(uint uIP, int nPort, int nProbes, int nTimeout) {
//return Scan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, 1, ((nProbes + 1) * 2 * nTimeout), false);
return OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, 1, 60000, false);
}
public uint Scan(uint uIP, int nPort, int nProbes, int nTimeout, int nRetry) {
//return Scan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, nRetry, ((nProbes + 1) * (nRetry + 1) * nTimeout), false);
return OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, nRetry, 60000, false);
}
public uint Scan(uint uIP, int nPort, int nProbes, int nTimeout, int nRetry, int nTotalTimeout) {
return OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, nRetry, nTotalTimeout, false);
}
public uint Scan(uint uIP, int nPort, int nProbes, int nTimeout, int nRetry, int nTotalTimeout, bool bUseNullProbe) {
return OnScan(nPort, new IPEndPoint(new IPAddress(uIP), nPort), nProbes, nTimeout, nRetry, nTotalTimeout, bUseNullProbe);
}
public uint Scan(string strIP, int nPort) {
//return this.Scan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), 3, 3000, 1, 18000, false);
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), 3, 3000, 1, 60000, false);
}
public uint Scan(string strIP, int nPort, int nProbes) {
//return this.Scan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, 3000, 1, ((nProbes + 1) * 2 * 3000), false);
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, 3000, 1, 60000, false);
}
public uint Scan(string strIP, int nPort, int nProbes, int nTimeout) {
//return this.Scan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, 1, ((nProbes + 1) * 2 * nTimeout), false);
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, 1, 60000, false);
}
public uint Scan(string strIP, int nPort, int nProbes, int nTimeout, int nRetry) {
//return this.Scan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, nRetry, ((nProbes + 1) * (nRetry + 1) * nTimeout), false);
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, nRetry, 60000, false);
}
public uint Scan(string strIP, int nPort, int nProbes, int nTimeout, int nRetry, int nTotalTimeout) {
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, nRetry, nTotalTimeout, false);
}
public uint Scan(string strIP, int nPort, int nProbes, int nTimeout, int nRetry, int nTotalTimeout, bool bUseNullProbe) {
return this.OnScan(nPort, new IPEndPoint(IPAddress.Parse(strIP), nPort), nProbes, nTimeout, nRetry, nTotalTimeout, bUseNullProbe);
}
public uint Scan(int nPort, EndPoint endPoint, int nProbes, int nTimeout, int nRetry, int nTotalTimeout, bool bUseNullProbe) {
return this.OnScan(nPort, endPoint, nProbes, nTimeout, nRetry, nTotalTimeout, bUseNullProbe);
}
//========================================
public event ScanEventHandler Completed;
protected virtual void OnCompleted(ScanEventArgs e) {
if (this.Completed != null) this.Completed(this, e);
}
protected object m_obj_sync = new object();
internal PortScanner() { }
protected void CloseSocket(Socket sock) {
lock (m_obj_sync) {
if (sock == null /*|| !sock.Connected*/) return;
//if (sock.Connected) {
// try {
// sock.Shutdown(SocketShutdown.Both);
// } catch (Exception ex) { Console.WriteLine("EX:" + ex.Message); }
//}
sock.Close();
}
}
public abstract void Dispose();
protected abstract uint OnScan(int nPort, EndPoint endPoint, int nProbes, int nTimeout, int nRetry, int nTotalTimeout, bool bUseNullProbe);
}
}