Frage

Ich bin mir nicht sicher, ob es hier posten oder an ServerFault. Wie dem auch sei, ich versuche, um Unternehmens-Firewall zu arbeiten, um einige Medien-Sharing-Site zu verbinden mein Handy 3G-Netzwerk. Ich habe mit einem einfachen Befehl ip route kommen, die pppd der inet-Adresse nehmen, wie es Parameter sind. Aber möchte ich durch das Lesen der inet-Adresse direkt aus dem Skript es ein wenig mehr automatisiert machen, nicht indem sie sie über Kommandozeilenparameter übergeben.

Hier ist das Szenario ist, um es noch deutlicher:

  • Der Befehlsaufruf ab jetzt: $jumpfirewall xxx.xxx.xxx.xxx

  • Der Befehlsaufruf Ich möchte: $jumpfirewall

Sie wissen einen Befehl oder Bibliothek, die ich verwenden kann, es von der Kommandozeile zu lesen?

War es hilfreich?

Lösung

Angepasst von cyberciti :

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

Die ifconfig ppp0 werden Informationen für Ihre primäre PPP-Schnittstelle erhalten; die grep schneidet es auf die Linie nach unten die IP-Adresse enthält; cut bis der inet addr: spaltet alles nach bcast: heraus, so etwas wie 1.2.3.4 Bcast: geben; und der awk Anruf wird nur das erste (Leerzeichen getrennt) Feld drucken, die Sie nur die IP-Adresse zu verlassen.

Andere Tipps

pppd ruft automatisch ein Skript in /etc/ppp/ip-up, wenn ein Link gebracht. In diesem Skript ist $4 die lokale IP-Adresse der PPP-Verbindung. (Bei einigen Distributionen, /etc/ppp/ip-up wird die Skripte in /etc/ppp/ip-up.d zu nennen, mit $PPP_LOCAL auf die IP-Adresse, so können Sie Ihren Skript platzieren dort).

Auf diese Weise werden Sie nicht von Hand müssen die Skript aufrufen - nur die PPP-Verbindung bringen und es wird automatisch ausgeführt werden. Es gibt ein entsprechendes /etc/ppp/ip-down Sie Ihre Route rückgängig machen können, wenn die Verbindung nach unten geht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top