質問

ここに投稿するか ServerFault に投稿するか迷っています。とにかく、会社のファイアウォールを回避して、携帯電話の 3G ネットワークを使用してメディア共有サイトに接続しようとしています。pppd の inet アドレスをパラメータとして受け取る単純な ip Route コマンドを思いつきました。ただし、inet アドレスをコマンド ライン パラメーター経由で渡すのではなく、スクリプトから直接読み取ることで、もう少し自動化したいと考えています。

より明確にするために、シナリオを次に示します。

  • 現時点でのコマンド呼び出しは次のとおりです。 $jumpfirewall xxx.xxx.xxx.xxx

  • 必要なコマンド呼び出し: $jumpfirewall

コマンドラインから読み取るために使用できるコマンドまたはライブラリをご存知ですか?

役に立ちましたか?

解決

から適応 サイバーシティ:

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

ifconfig ppp0 プライマリ PPP インターフェイスの情報を取得します。の grep IP アドレスを含む行まで切り取ります。の cut その後すべてを分割します inet addr: まで bcast:, 、次のようなものを与えます 1.2.3.4 Bcast:;そしてその awk call は最初の (スペースで区切られた) フィールドのみを出力し、IP アドレスのみが残ります。

他のヒント

リンクが育っているとき、

pppdは自動的/etc/ppp/ip-upでスクリプトを呼び出します。このスクリプトでは、$4は、PPPリンクのローカルIPアドレスです。 (いくつかのディストリビューションでは、/etc/ppp/ip-upは、IPアドレスに設定/etc/ppp/ip-up.dと、$PPP_LOCALでスクリプトを呼び出すように設定されているので、あなたはそこにスクリプトを配置することができます)。

この方法では、手動でスクリプトを呼び出す必要はありません - ちょうどPPPリンクを立ち上げ、それが自動的に実行されます。リンクがダウンしたときに、あなたのルートを元に戻すために使用することができ、対応する/etc/ppp/ip-downがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top