-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathip_info
More file actions
executable file
·57 lines (41 loc) · 1.2 KB
/
ip_info
File metadata and controls
executable file
·57 lines (41 loc) · 1.2 KB
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
#!/bin/bash
__track_usage "$(basename "$0")"
COUNT=2
fmt_geoip() {
xargs geoiplookup | xargs echo | awk -F':' '{print $3}' | awk -F',' '{print $1$2$3$4$5}'
}
process_shit() {
local filtered_mtr="$1"
echo "$filtered_mtr" | grep ' (' | while read line; do
geo=$(echo $line | awk -F'[(|)]' '{print $2}' | fmt_geoip )
echo "$line - $geo"
done
echo "$filtered_mtr" | grep -v ' (' | while read line; do
geo=$(echo $line | awk '{print $3}' | fmt_geoip )
echo "$line - $geo"
done
}
data=$(whois "$IP")
getCIDR() {
echo "$1" | grep "CIDR" | awk '{print $2}' | awk -F'/' '{print $2, $0}' | sort -n | awk '{print $2}' | awk 1 ORS=', '
}
getOrg() {
echo "$1" | grep 'OrgName' | awk -F ':' '{print $2}' | awk 1 ORS=', ' | tr -s ' '
}
prettyWhois() {
local IP="$1"
local data=$(whois "$IP")
local CIDR=$(getCIDR "$data")
local ORG=$(getOrg "$data")
echo "IP: $IP"
echo "CIDR: $CIDR"
echo "Org: $ORG"
}
IP="$1"
# sudo early because stealing the output of later sudo cmd
sudo echo "" > /dev/null
prettyWhois "$IP"
geoiplookup "$IP"
raw_mtr=$(sudo mtr "$IP" -wrby n -c "$COUNT")
filtered_mtr=$(echo "$raw_mtr" | grep -v 'HOST:' | grep -v 'Start:')
process_shit "$filtered_mtr" | sort -n