-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathbugfinder.cs
158 lines (149 loc) · 4.96 KB
/
bugfinder.cs
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Coffeed
{
public partial class bugfinder : Form
{
public bugfinder()
{
InitializeComponent();
}
private void bugfinder_Load(object sender, EventArgs e)
{
listBox4.Enabled = false;
}
bool continues = true;
void runScan(int iStartPort, int iEndPort)
{
for (int i = iStartPort; i <= iEndPort; i++)
{
Scann(hostinput.Text, i);
}
listBox3.BeginInvoke(new Action(() => {
listBox3.Items.Add(hostinput.Text + " - " + DateTime.Now.ToString());
}));
}
void Scann(string ipaddress, int port)
{
IPAddress ipo = IPAddress.Parse(ipaddress);
IPEndPoint ipEo = new IPEndPoint(ipo, port);
try
{
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IAsyncResult result = sock.BeginConnect(ipEo, null, null);
bool success = result.AsyncWaitHandle.WaitOne(100, true);
if (sock.Connected)
{
sock.EndConnect(result);
listBox2.BeginInvoke(new Action(() => {
listBox1.Items.Add(port);
}));
}
else
{
listBox2.BeginInvoke(new Action(() =>
{
listBox2.Items.Add(port);
}));
}
sock.Close();
}
catch
{
listBox2.BeginInvoke(new Action(() =>
{
listBox2.Items.Add(port);
}));
}
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
runScan(int.Parse(intstartport.Text), int.Parse(intstopport.Text));
}
int curms;
int pastms;
private void button2_Click(object sender, EventArgs e)
{
pastms = DateTime.Now.Millisecond;
continues = true;
backgroundWorker2.RunWorkerAsync();
}
void runPing(string ipaddress, int port)
{
IPAddress ipo = IPAddress.Parse(ipaddress);
IPEndPoint ipEo = new IPEndPoint(ipo, port);
try
{
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Verbindung vorbereiten
IAsyncResult result = sock.BeginConnect(ipEo, null, null);
bool success = result.AsyncWaitHandle.WaitOne(1000, true);
if (sock.Connected)
{
curms = DateTime.Now.Millisecond;
listBox4.BeginInvoke(new Action(() =>
{
int milisecond = (curms-pastms);
listBox4.Items.Add("Host " + ipaddress + ":"+ port +" took " + milisecond.ToString() + " ms");
}));
}
else
{
listBox4.BeginInvoke(new Action(() =>
{
listBox4.Items.Add("Host " + ipaddress + ":"+ port + " is unreachable.");
}));
}
sock.Close();
}
catch
{
listBox2.BeginInvoke(new Action(() =>
{
listBox2.Items.Add(port);
}));
}
}
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
int lport = 0;
listBox1.BeginInvoke(new Action(() =>
{
lport = int.Parse(listBox1.GetItemText(listBox1.SelectedItem));
}));
loopit:
if (continues)
{
listBox4.BeginInvoke(new Action(() =>
{
int visibleItems = listBox4.ClientSize.Height / listBox4.ItemHeight;
listBox4.TopIndex = Math.Max(listBox4.Items.Count - visibleItems + 1, 0);
}));
runPing(hostinput.Text, lport);
System.Threading.Thread.Sleep(1500);
pastms = DateTime.Now.Millisecond;
goto loopit;
}
else
{
backgroundWorker2.CancelAsync();
}
}
private void button3_Click(object sender, EventArgs e)
{
continues = false;
}
}
}