Simplify detection of public IP4

Detect public IP4 more simple.
"ip addr | ... | grep -v inet6" replaced with "ip -4 addr".
"grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'" repleced with search for "scope global".
"grep 'inet' | ... | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'" replaced with search for first word after "inet".
All grep in one "sed".
This commit is contained in:
Henry N 2020-03-28 23:32:30 +01:00 committed by GitHub
parent 44105eb060
commit 001eef52b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -206,7 +206,7 @@ function installQuestions () {
echo "Unless your server is behind NAT, it should be your public IPv4 address."
# Detect public IPv4 address and pre-fill for the user
IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
IP=$(ip -4 addr | sed -ne 's|^.* inet \([^/]*\)/.* scope global.*$|\1|p' | head -1)
APPROVE_IP=${APPROVE_IP:-n}
if [[ $APPROVE_IP =~ n ]]; then
read -rp "IP address: " -e -i "$IP" IP