Pergunta

Não tenho certeza se devo publicá -lo aqui ou no ServerFault. De qualquer forma, estou tentando trabalhar no firewall da empresa para conectar -se a algum site de compartilhamento de mídia usando a rede 3G do meu telefone. Eu criei um comando simples de rota IP que pega o endereço INET do PPPD como seu parâmetro. Mas, quero torná -lo um pouco mais automatizado lendo o endereço INET diretamente do script, não passando -o via parâmetro de linha de comando.

Aqui está o cenário, para torná -lo mais óbvio:

  • A invocação de comando a partir de agora: $jumpfirewall xxx.xxx.xxx.xxx

  • A invocação de comando que eu quero: $jumpfirewall

Você conhece algum comando ou biblioteca que eu possa usar para lê -lo na linha de comando?

Foi útil?

Solução

Adaptado de Cyberciti:

/sbin/ifconfig ppp0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

o ifconfig ppp0 obterá informações para sua interface PPP primária; a grep reduz a linha que contém o endereço IP; a cut divide tudo depois inet addr: até bcast:, dando algo como 1.2.3.4 Bcast:; e a awk A chamada imprimirá apenas o primeiro campo (separado pelo espaço), deixando você apenas com o endereço IP.

Outras dicas

pppd chama automaticamente um script em /etc/ppp/ip-up Quando um link é criado. Neste script, $4 é o endereço IP local do link PPP. (Em algumas distribuições, /etc/ppp/ip-up está pronto para chamar os scripts em /etc/ppp/ip-up.d, com $PPP_LOCAL Defina para o endereço IP, para que você possa colocar seu script lá).

Dessa forma, você não precisará chamar manualmente o script - basta criar o link PPP e ele será executado automaticamente. Há um correspondente /etc/ppp/ip-down Você pode usar para desfazer sua rota quando o link diminuir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top