Para obter seu endereço IP de Ifconfig
, você pode usar isto:
echo 'ifconfig tun0 2>/dev/null|awk '/inet addr:/ {print }'|sed 's/addr://''
Este comando irá obter o endereço IP de tun0
.
Atualmente estou trabalhando com isso
IFTUN="$(ifconfig tun)" IPADD=${IFTUN:106:13} echo $IPADD
Mas se o tamanho do endereço IP mudar, isso não funcionará mais.
inet addr:1.2.3.4 P-t-P:1.2.3.4 Mask:255.255.254.0 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:1151 errors:0 dropped:0 overruns:0 frame:0
Então, o que eu estou procurando é uma maneira de obter o IP do ifconfig, não importa qual seja o número de caracteres "1.2.3.4" ou "111.22.3.44" ou mesmo "111.222.333.444"
Para obter seu endereço IP de Ifconfig
, você pode usar isto:
echo 'ifconfig tun0 2>/dev/null|awk '/inet addr:/ {print }'|sed 's/addr://''
Este comando irá obter o endereço IP de tun0
.
Use o comando ip
insted de ifconfig
, que está obsoleto.
ipAddr=$( ip a s eth0 | awk '/inet.*brd/ {print }' )
Exemplo de saída: 172.16.2.136/16
Se você não quiser incluir o CIDR, use este:
ipAddr=$( ip a s eth0 | awk '/inet.*brd/ {print }' | awk -F'/' '{print }' )
Exemplo de saída: 172.16.2.136
Eu não usaria ifconfig porque pelo menos em algumas distros ele está sendo substituído por ip.
Se você conhece sua interface, pode fazer isso:
ip addr | grep eth0 | grep inet | awk '{print $ 2}'
Ele vai te dar a máscara também que você pode cortar assim
ip addr | grep eth0 | grep inet | awk '{print $ 2}' | cortar -d "/" -f 1
Estou assumindo que você está usando bash para o seu script. Se você estiver usando outro idioma, você também pode obter seu nome de host e procurar o seu ip.