@@ -58,6 +58,13 @@ def cleanup
58
58
"-h" => [ false , "Help banner." ] ,
59
59
"-S" => [ true , "Search string." ] )
60
60
61
+ #
62
+ # Options for ARP command.
63
+ #
64
+ @@arp_opts = Rex ::Parser ::Arguments . new (
65
+ "-h" => [ false , "Help banner." ] ,
66
+ "-S" => [ true , "Search string." ] )
67
+
61
68
#
62
69
# List of supported commands.
63
70
#
@@ -126,7 +133,7 @@ def cmd_netstat(*args)
126
133
search_term = /#{ search_term } /nmi
127
134
end
128
135
when "-h"
129
- cmd_netstat_help
136
+ @@netstat_opts . usage
130
137
return 0
131
138
132
139
end
@@ -163,6 +170,23 @@ def cmd_netstat(*args)
163
170
#
164
171
def cmd_arp ( *args )
165
172
arp_table = client . net . config . arp_table
173
+ search_term = nil
174
+ @@arp_opts . parse ( args ) { |opt , idx , val |
175
+ case opt
176
+ when '-S'
177
+ search_term = val
178
+ if search_term . nil?
179
+ print_error ( "Enter a search term" )
180
+ return true
181
+ else
182
+ search_term = /#{ search_term } /nmi
183
+ end
184
+ when "-h"
185
+ @@arp_opts . usage
186
+ return 0
187
+
188
+ end
189
+ }
166
190
tbl = Rex ::Ui ::Text ::Table . new (
167
191
'Header' => "ARP cache" ,
168
192
'Indent' => 4 ,
@@ -171,7 +195,8 @@ def cmd_arp(*args)
171
195
"IP address" ,
172
196
"MAC address" ,
173
197
"Interface"
174
- ] )
198
+ ] ,
199
+ 'SearchTerm' => search_term )
175
200
176
201
arp_table . each { |arp |
177
202
tbl << [ arp . ip_addr , arp . mac_addr , arp . interface ]
0 commit comments