blob: e98359095fa78845bcd6b80f97d2b3a069ee2230 (
plain) (
blame)
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
|
#!/bin/bash
paths="$(ncat --recv-only 21.41.41.1 64777 | sort | uniq | tee /var/cache/hackvr/anonet_data.new)"
MAP=/var/cache/hackvr/anonet_map.hackvr
#see if the data actually changed before regenerating this shit...
if cmp /var/cache/hackvr/anonet_data.new /var/cache/hackvr/anonet_data.old ; then
cat $MAP
exit 0
fi
mv /var/cache/hackvr/anonet_data.new /var/cache/hackvr/anonet_data.old
> $MAP
nodes=$(printf "%s\n" "$paths" | tr ' ' '\n' | sort | uniq)
nodes_count="$(printf "%s\n" "$nodes" | tr ' ' '\n' | wc -l | tr -cd '0-9')"
#echo $nodes
#echo $nodes_count
echo $USER move 0 0 -17
coords="$( (for node in $nodes;do
printf "AS%s addshape 4 2 0 8 0 0 0 0\n" "$node"
printf "AS* rotate 0 0 +%d\n" "$[360 / ${nodes_count} ]"
printf "AS* flatten\n"
done
printf "* export *\n"
) | hackvr_headless 2>/dev/null | sed 's/^*_AS//g' | cut '-d ' -f5,6)"
#printf "%s\n" "$coords"
xcoords="$(printf "%s\n" "$coords" | cut '-d ' -f1)"
ycoords="$(printf "%s\n" "$coords" | cut '-d ' -f2)"
#echo $xcoords
#echo $ycoords
edges=$(printf "%s\n" "$paths" | tr '\n' '\0' | xargs -n1 -0 ./paths-to-edges | sort | uniq | tr ' ' '_')
index_of() {
printf "%s\n" "$nodes" | grep -n '^'"$1"'$' | cut -d: -f1
}
xcoord_by_ASN() {
printf "%s\n" "$xcoords" | head -n "$(index_of $1)" | tail -n1
}
ycoord_by_ASN() {
printf "%s\n" "$ycoords" | head -n "$(index_of $1)" | tail -n1
}
line_between_nodes() {
a=$(printf "%s\n" "$1" | cut -d_ -f1)
b=$(printf "%s\n" "$1" | cut -d_ -f2)
printf "%s->%s addshape 2 2 %s %s 0 %s %s 0\n" "$a" "$b" $(xcoord_by_ASN $a) $(ycoord_by_ASN $a) $(xcoord_by_ASN $b) $(ycoord_by_ASN $b)
}
for node in $nodes;do
printf "<whois://whois.ano/AS%s> addshape 5 4 -1 8 0 -1 10 0 1 10 0 1 8 0\n" "$node"
printf "<whois://whois.ano/AS* rotate 0 0 +%d\n" "$[360 / ${nodes_count} ]"
printf "<whois://whois.ano/AS* flatten\n"
makelabel.sh AS$node $( echo | awk "{print $(xcoord_by_ASN $node) * 13}" ) $( echo | awk "{print $(ycoord_by_ASN $node) * 13}" ) -10 <<< $node
printf "AS%s scale .1 .1 .1\n" "$node"
done | tee -a $MAP
for i in $edges;do
line_between_nodes "$i"
done | tee -a $MAP
#for i in ${!nodes[@]};do
# echo $i
# echo ${nodes[$i]}
# node=$(printf "%s\n" "${nodes}" | head -n${i} | tail -n1)
#done
|