O que é o comando Linux para obter o endereço IP PPTP atual?

1

Eu tenho um script Linux que me permite rotear algum tráfego através de uma interface VPN e outro tráfego (de IP diferente) através de outra interface. Este é o meu script:

echo "ip route del default via 192.168.120.10 dev ppp0;" >> /tmp/firewallscript.sh
echo "ip route add default via 192.168.1.254 dev eth0;" >> /tmp/firewallscript.sh
echo "ip route add table 55 default via 192.168.120.10 dev ppp0;" >> /tmp/firewallscript.sh
echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.40 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh
echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.41 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh
echo "iptables -t mangle -I PREROUTING 1 -s 192.168.1.42 -j MARK --set-mark 55;" >> /tmp/firewallscript.sh
echo "ip rule add fwmark 55 table 55;" >> /tmp/firewallscript.sh

Como o IP da minha VPN muda muito, gostaria de "parametrizá-la". Então, em vez de escrever este código de linha:

echo "ip route del default via 192.168.120.10 dev ppp0;" >> /tmp/firewallscript.sh

Eu preciso escrever algo como:

echo "ip route del default via @MyVariableIP dev ppp0;" >> /tmp/firewallscript.sh

Em que @MyVariableIP é o endereço IP do ppp0. Então minhas perguntas são:

  1. Como posso obter o endereço IP da interface usando o bash, sabendo que a interface é ppp0?
  2. Como modificar o script anterior?

Obrigado

    
por stighy 05.03.2014 / 20:06

1 resposta

0

  1. No final deste script, você pode obter o ip de ppp0 na variável $ ip_of_ppp0
  2. Coloque este script antes do seu e substitua @MyVariableIP por $ ip_of_ppp0

    n='ifconfig|grep -B10 'POINTOPOINT' | cut -d " " -f1 '
    m='ifconfig|grep -B8 'POINTOPOINT'|cut -d " " -f12|grep 'addr:1'|cut -d ":" -f2 '
    f='echo $n'
    l='echo $m'
    arr=($f)
    amm=($l)
    h=0
    for i in "${arr[@]}"; do              
            ip=${amm[$h]}
            h='expr $h+1'
            if [[ "$i" = "ppp0" ]]; then
                    ip_of_ppp0=$ip;
            fi    
    done
    echo $ip_of_ppp0;
    
por 05.03.2014 / 23:30