forked from sbalkum/SimpleLoad
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAttacker.csx
49 lines (45 loc) · 2.44 KB
/
Attacker.csx
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
//scriptcs c:\warmachine.csx
int maxLoops = 16192;
string urlBase = "http://basmaster.cloudapp.net/";
var urls = new List<string>();
var urlEnd = "&machine=" + Environment.MachineName;
for (int i = 0; i < maxLoops; i++)
{
// urls.Add(urlBase + "DSCF4107.JPG?V1&" + i + urlEnd);
// urls.Add(urlBase + "SimpleLoad/UserAccountPicture.jpg?R1&" + i + urlEnd);
urls.Add(urlBase + "?" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V2&" + i + urlEnd);
urls.Add(urlBase + "foo.html?" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V3&" + i + urlEnd);
urls.Add(urlBase + "foo/bar/" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V4&" + i + urlEnd);
urls.Add(urlBase + "SimpleLoad/default.aspx?numdigits=6000&i=" + i + urlEnd);
urls.Add(urlBase + "SimpleLoad/default.aspx?numdigits=6000&i=" + i + urlEnd);
urls.Add(urlBase + "SimpleLoad/default.aspx?numdigits=6000&i=" + i + urlEnd);
urls.Add(urlBase + "SimpleLoad/default.aspx?numdigits=6000&i=" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V5&" + i + urlEnd);
// urls.Add(urlBase + "SimpleLoad/UserAccountPicture.jpg?R2&" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V6&" + i + urlEnd);
// urls.Add(urlBase + "SimpleLoad/UserAccountPicture.jpg?R3&" + i + urlEnd);
// urls.Add(urlBase + "DSCF4107.JPG?V7&" + i + urlEnd);
}
var po = new ParallelOptions();
po.MaxDegreeOfParallelism = 8096;
var urlCount = urls.Count;
int reqnum = 0;
int pendingRequestCount = 0;
Parallel.ForEach(urls, po, url =>
{
++pendingRequestCount;
try
{
using (var client = new System.Net.WebClient())
{
var html = client.DownloadString(url);
Console.WriteLine("Completed request {0} of {1} at {2}. {3} pending.\n ->Url: {4}",
reqnum + 1, urlCount, DateTime.Now.ToLongTimeString(), pendingRequestCount, url);
}
}
catch { }
finally { --pendingRequestCount; ++reqnum; }
});