forked from axiom-team/astrXbian
61 lines
2.9 KiB
Bash
Executable File
61 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
########################################################################
|
|
# Author: Armust (support@qo-op.com)
|
|
# Version: 2020.12.24
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
|
########################################################################
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|
ME="${0##*/}"
|
|
|
|
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
|
IPFSNODEID=$(ipfs id -f='<id>\n')
|
|
|
|
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
|
IamInLAN=$(echo $myIP | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" )
|
|
|
|
#EXTERNIP=$(curl -s http://whatismyip.akamai.com/)
|
|
########################################################################
|
|
echo "CREATING MY /home/$USER/.zen/ipfs/.${IPFSNODEID}/tryme.addr"
|
|
########################################################################
|
|
mkdir -p ~/.zen/ipfs/.${IPFSNODEID}
|
|
# echo "/ip4/$EXTERNIP/udp/4001/astro/p2p/${IPFSNODEID}" >> /home/$YOU/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
# Doesn't have the right NATed port, so pretty useless...
|
|
|
|
rm -f ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
touch ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
|
|
########################################################################
|
|
## If my address is published by my friends, sending it only.
|
|
# ME=$(cat ~/.zen/ipfs/.*/FRIENDS/*/tryme.addr | grep $IPFSNODEID | sort | uniq)
|
|
# [[ $ME ]] && cat ~/.zen/ipfs/.*/FRIENDS/*/tryme.addr | grep $IPFSNODEID | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr && exit 0
|
|
########################################################################
|
|
|
|
for tryme in $(ipfs id | jq -r .Addresses[]);
|
|
do
|
|
isLAN=$(echo $tryme | cut -f3 -d '/' | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
|
[[ ! $isLAN ]] && echo "$tryme" >> ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr && echo "$tryme"
|
|
done
|
|
|
|
# Now adding "ipfs swarm peers" to ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
for tryme in $(ipfs swarm peers);
|
|
do
|
|
ipfsnodeid=$(echo $tryme | rev | cut -d '/' -f 1 | rev)
|
|
isMySWARM=$(cat ~/.zen/A_my_swarm.txt | grep $ipfsnodeid )
|
|
isLAN=$(echo $tryme | cut -f3 -d '/' | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
|
[[ ! $isLAN ]] && [[ $isMySWARM ]] && echo "$tryme" >> ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr && echo "$tryme" || ipfs swarm disconnect /ipfs/$ipfsnodeid
|
|
done
|
|
|
|
# REMOVE ipv6 address for in LAN node
|
|
if [[ $IamInLAN ]]; then
|
|
cat ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr | grep -Ev "ip6" > /tmp/tryme.addr
|
|
cp -f /tmp/tryme.addr ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
fi
|
|
|
|
# UNIQ TOUT CA
|
|
cat ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr | sort | uniq > /tmp/tryme.addr
|
|
cp -f /tmp/tryme.addr ~/.zen/ipfs/.${IPFSNODEID}/tryme.addr
|
|
rm -f /tmp/tryme.addr
|
|
|
|
exit 0
|