-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshodan_completion.sh
131 lines (123 loc) · 3.45 KB
/
shodan_completion.sh
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
_shodan(){
local cur prev words cword
_init_completion || return
if [ $prev == "shodan" ]; then
COMPREPLY=( $( compgen -W 'alert convert count data domain download
honeyscore host info init myip org parse radar scan search stats
stream version' -- "$cur" ))
return
fi
case ${COMP_WORDS[COMP_CWORD-2]} in
convert)
COMPREPLY=( $( compgen -W 'kml csv geo.json images xlsx' -- "$cur"))
return
;;
data)
case $prev in
list)
COMPREPLY=( $( compgen -W '--dataset' -- "$cur"))
return
;;
download)
COMPREPLY=( $( compgen -W '--chunksize -O --filename' -- "$cur"))
return
;;
esac
;;
host)
if [ $prev == "--format" ]; then
COMPREPLY=( $( compgen -W 'pretty tsv' -- "$cur"))
return
fi
;;
org)
if [ $prev == "add" ] ; then
COMPREPLY=( $( compgen -W '--silent' -- "$cur"))
return
fi
;;
scan)
case $prev in
internet)
COMPREPLY=( $( compgen -W '--quiet' -- "$cur"))
return
;;
submit)
COMPREPLY=( $( compgen -W '--wait --filename --force --verbose' -- "$cur"))
return
;;
esac
;;
alert)
case $prev in
domain)
COMPREPLY=( $( compgen -W '--triggers' -- "$cur"))
return
;;
download)
COMPREPLY=( $( compgen -W '--alert-id' -- "$cur"))
return
;;
export)
COMPREPLY=( $( compgen -W '--filename' -- "$cur"))
return
;;
list)
COMPREPLY=( $( compgen -W '--expired' -- "$cur"))
return
;;
stats)
COMPREPLY=( $( compgen -W '--limit -O --filename' -- "$cur"))
return
;;
esac
;;
esac
case $prev in
host)
COMPREPLY=( $( compgen -W '--format --history -O --filename
-S --save -h --help' -- "$cur"))
;;
domain)
COMPREPLY=( $( compgen -W '-D --detail -S --save -H --history
-T --type -h --help' -- "$cur"))
;;
org)
COMPREPLY=( $( compgen -W 'add info remove' -- "$cur"))
;;
myip)
COMPREPLY=( $( compgen -W '-6 -ipv6' -- "$cur"))
;;
convert)
COMPREPLY=( $(compgen -f -- ${cur}) )
;;
parse)
COMPREPLY=( $( compgen -W '--color --no-color --fields -f --filters
-O --filename --separator' -- "$cur"))
;;
scan)
COMPREPLY=( $( compgen -W 'internet list protocols status submit' -- "$cur"))
;;
data)
COMPREPLY=( $( compgen -W 'download list' -- "$cur"))
;;
search)
COMPREPLY=( $( compgen -W '--color --no-color --fields --limit
--separator' -- "$cur"))
;;
stats)
COMPREPLY=( $( compgen -W '--limit --facets -O --filename' -- "$cur"))
;;
stream)
COMPREPLY=( $( compgen -W '--streamer --fields --separator --datadir --asn
--alert --countries --custom-filters --ports --tags --vulns
--limit --compresslevel --timeout --color --no-color
--quite' -- "$cur"))
;;
alert)
COMPREPLY=( $( compgen -W 'clear create disable domain download enable export
import info list remove stats triggers' -- "$cur"))
;;
esac
return 0
} && complete -F _shodan shodan