-
Notifications
You must be signed in to change notification settings - Fork 154
/
check-options
executable file
·118 lines (113 loc) · 3.43 KB
/
check-options
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
#!/bin/sh
# arp-scan is Copyright (C) 2005-2024 Roy Hills
#
# This file is part of arp-scan.
#
# arp-scan is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# arp-scan is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with arp-scan. If not, see <http://www.gnu.org/licenses/>.
#
# check-options -- Shell script to test arp-scan options
#
# Author: Roy Hills
# Date: 9 November 2022
#
# This shell script checks various arp-scan options.
#
ARPSCANOUTPUT=/tmp/arp-scan-test.$$.tmp
SAMPLE01="$srcdir/testdata/pkt-simple-response.pcap"
# Check --bandwidth with multiple character "K" and --retry-send-interval with
# appended multiple character "u".
echo "Checking arp-scan --bandwidth ..."
ARPARGS="--quiet --plain --retry=1 --bandwidth=256K --retry-send=1 --retry-send-interval=1000u --timeout=100 --backoff=1.0 --snap=128 --limit=1"
./arp-scan --readpktfromfile="$SAMPLE01" $ARPARGS 127.0.0.1 > "$ARPSCANOUTPUT"
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
grep '^127.0.0.1 08:00:2b:06:07:08' "$ARPSCANOUTPUT" >/dev/null
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
echo "ok"
rm -f "$ARPSCANOUTPUT"
# Check --bandwidth with appended multiple character "M"
echo "Checking arp-scan --bandwidth with M multiple..."
ARPARGS="--quiet --plain --retry=1 --bandwidth=1M"
./arp-scan --readpktfromfile="$SAMPLE01" $ARPARGS 127.0.0.1 > "$ARPSCANOUTPUT"
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
grep '^127.0.0.1 08:00:2b:06:07:08' "$ARPSCANOUTPUT" >/dev/null
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
echo "ok"
rm -f "$ARPSCANOUTPUT"
# Check --interval with appended multiple character "S"
echo "Checking arp-scan --interval ..."
ARPARGS="--quiet --plain --retry=1 --interval=1S"
./arp-scan --readpktfromfile="$SAMPLE01" $ARPARGS 127.0.0.1 > "$ARPSCANOUTPUT"
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
grep '^127.0.0.1 08:00:2b:06:07:08' "$ARPSCANOUTPUT" >/dev/null
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
echo "ok"
rm -f "$ARPSCANOUTPUT"
# Check --arpspa=dest
echo "Checking arp-scan --arpspa=dest ..."
ARPARGS="--quiet --plain --retry=1 --arpspa=dest"
./arp-scan --readpktfromfile="$SAMPLE01" $ARPARGS 127.0.0.1 > "$ARPSCANOUTPUT"
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
grep '^127.0.0.1 08:00:2b:06:07:08' "$ARPSCANOUTPUT" >/dev/null
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
echo "ok"
rm -f "$ARPSCANOUTPUT"
# Check --random without explicit --randomseed value
echo "Checking arp-scan --random ..."
ARPARGS="--quiet --plain --retry=1 --random"
./arp-scan --readpktfromfile="$SAMPLE01" $ARPARGS 127.0.0.1 > "$ARPSCANOUTPUT"
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
grep '^127.0.0.1 08:00:2b:06:07:08' "$ARPSCANOUTPUT" >/dev/null
if test $? -ne 0; then
rm -f "$ARPSCANOUTPUT"
echo "FAILED"
exit 1
fi
echo "ok"
rm -f "$ARPSCANOUTPUT"