|
10 | 10 | import sys
|
11 | 11 | import random
|
12 | 12 |
|
| 13 | +import argparse |
| 14 | +import functools |
| 15 | + |
| 16 | + |
| 17 | +from multiprocessing import Pool |
| 18 | + |
13 | 19 | from httplib import HTTPConnection
|
14 | 20 |
|
15 | 21 | PORT = "2060"
|
|
18 | 24 | def main(targetIF, prefix, maxI):
|
19 | 25 | target = get_ip_address(targetIF)
|
20 | 26 | for i in xrange(int(maxI)):
|
| 27 | + main_single(target, prefix, i) |
| 28 | + |
| 29 | +def main_single(target, prefix, i): |
21 | 30 | source = get_ip_address(prefix + str(i))
|
22 | 31 | # source_address requires python 2.7
|
23 | 32 | # urllib2 does not nicely expose source_address, so use
|
@@ -64,5 +73,22 @@ def get_ip_address(ifname):
|
64 | 73 | )[20:24])
|
65 | 74 |
|
66 | 75 | if __name__ == "__main__":
|
| 76 | + |
| 77 | + parser = argparse.ArgumentParser(description='Hammer a wifidog instance with requests') |
| 78 | + parser.add_argument('--target-interface', required=True, |
| 79 | + help='Interface where Wifidog is listening') |
| 80 | + parser.add_argument('--source-interface-prefix', required=True, |
| 81 | + help='Prefix of the virtual interfaces from which Wifidog is exercised.') |
| 82 | + parser.add_argument('--source-interface-count', required=True, |
| 83 | + help='Number of virtual interfaces, where interface is prefix+index') |
| 84 | + parser.add_argument('--process-count', required=True, |
| 85 | + help='How many processes to run') |
| 86 | + |
| 87 | + args = parser.parse_args() |
| 88 | + |
| 89 | + target = get_ip_address(args.target_interface) |
| 90 | + p = Pool(int(args.process_count)) |
| 91 | + partial = functools.partial(main_single, target, args.source_interface_prefix) |
67 | 92 | while True:
|
68 |
| - main(sys.argv[1], sys.argv[2], sys.argv[3]) |
| 93 | + p.map(partial, list(xrange(int(args.source_interface_count)))) |
| 94 | + |
0 commit comments