-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpeers.sh
56 lines (51 loc) · 1.77 KB
/
peers.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
#!/bin/bash
## this one might actually be useful. prints a list of nodes connected to the reference node
## either all peers, or only outbound peers
RED='\033[0;91m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m'
x=0
printf "\n${RED}rpc${NC} address?: "
read RPC
DATA=$(curl -s $RPC/net_info)
if [ -z "$DATA" ]
then
printf "%b\n${RED}rpc%b${NC} error\n\n"
exit 1
fi
NETWORK=$(echo $DATA | jq '.result | .peers | .[0] | .node_info | .network' | tr -d '"')
COUNT=$(echo $DATA | jq '.result | .n_peers' | tr -d '"')
printf "\n${RED}filter${NC} outbound only? (y/n): "
read FILTER
if [ $FILTER == 'y' ]
then
printf "\nlist of ${BLUE}outbound${NC} $NETWORK peers only (${BLUE}$COUNT${NC} total):\n\n"
while [ $x -lt $COUNT ]
do
if [ $(echo $DATA | jq ".result | .peers | .[$x] | .is_outbound") == 'true' ]
then
ID=$(echo $DATA | jq ".result | .peers | .[$x] | .node_info | .id" 2> /dev/null)
ADDRESS=$(echo $DATA | jq ".result | .peers | .[$x] | .remote_ip" 2> /dev/null)
PORT=$(echo $DATA | jq ".result | .peers | .[$x] | .node_info | .listen_addr" 2> /dev/null | tr -d '"')
PEER=$(echo $ID | tr -d '"')@$(echo $ADDRESS | tr -d '"'):${PORT##*:}
echo $PEER
((x++))
else
((x++))
fi
done
printf "\n"
else
printf "\nlist of all ${GREEN}connected${NC} $NETWORK peers (${GREEN}$COUNT${NC} total):\n\n"
while [ $x -lt $COUNT ]
do
ID=$(echo $DATA | jq ".result | .peers | .[$x] | .node_info | .id" 2> /dev/null)
ADDRESS=$(echo $DATA | jq ".result | .peers | .[$x] | .remote_ip" 2> /dev/null)
PORT=$(echo $DATA | jq ".result | .peers | .[$x] | .node_info | .listen_addr" 2> /dev/null | tr -d '"')
PEER=$(echo $ID | tr -d '"')@$(echo $ADDRESS | tr -d '"'):${PORT##*:}
echo $PEER
((x++))
done
printf "\n"
fi