Я знаю, что у меня нет общедоступный IPv6 (в моей стране он появляется медленно), поэтому я ожидаю, что будет указано «Неизвестно».
Но он пуст.
В чем проблема?< /p>
test.sh
Код: Выделить всё
#!/bin/bash
OS="$(uname)"
InternalIP=""
LIP="ip addr show"
LIP6="ip -6 addr show scope global"
IPv6=""
PIPv6=""
case $OS in
*)InternalIP=$($LIP | grep 'inet'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NF>0{print $2}');;
esac
case $OS in
*)IPv6=$($LIP | grep 'inet6' | grep -v '128' | awk '{print $2}');;
esac
case $OS in
*)PIPv6=$($LIP6 | grep 'inet6' | grep -v '128' | awk '{print $2}');;
esac
if [ -z $PIPv6 ]; then
echo $PIPv6
else
echo "Unknown"
fi
length=$InternalIP
echo $InternalIP | awk '{print substr($0, 1, length($0)-3)}'
echo $IPv6 | awk '{print substr($0, 1, length($0)-3)}'
echo "Public IPv6: "$PIPv6
Код: Выделить всё
Unknown
1xx.xxx.xxx.xxx
xxxx::xxxx:xxxx:xxxx:xxx
Public IPv6:
Код: Выделить всё
#!/bin/bash
LIB="ip address show" # Show Network Information
PIB6="ip -6 adress show scope global" # Public IPv6
IPv4="$($LIB | awk '/inet/ && !/127/ && !/128/ && !/64/{print $2}')"
IPv6="$($LIB | awk '/inet6/ && !/128/{print $2}')"
PIPv4="$(dig +short myip.opendns.com @resolver1.opendns.com)"
PIPv6="$($PIP6 | awk '/inet6/ && !/128/{print $2}')"
if [ -z "$PIPv6" ]; then
PIPv6="unknown"
fi
echo "Local IPv4: $IPv4" | awk '{print substr($0,1,length($0)-3)}'
echo "Local IPv6: $IPv6" | awk '{print substr($0,1,length($0)-3)}'
echo "Public IPv4: $PIPv4"
echo "Public IPv6: $PIPv6"
Код: Выделить всё
Local IPv4: xxx.xxx.xxx.xxx
Local IPv6: xxxx::xxxx:xxxx:xxxx:xxx
Public IPv4: xxx.xxx.xxx.xxx
Public IPv6: Unknown
Подробнее здесь: https://stackoverflow.com/questions/782 ... a-function