2

ここに投稿するか、ServerFault に投稿するかはわかりません。とにかく、会社のファイアウォールを回避して、携帯電話の 3g ネットワークを使用してメディア共有サイトに接続しようとしています。pppd の inet アドレスをパラメータとして取る簡単な ip route コマンドを考え出しました。しかし、コマンドラインパラメーターを介して渡すのではなく、スクリプトから直接inetアドレスを読み取ることにより、もう少し自動化したいと考えています。

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

  • 現在のコマンド呼び出し:$jumpfirewall xxx.xxx.xxx.xxx

  • 私が望むコマンド呼び出し:$jumpfirewall

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

4

2 に答える 2

4

サイバーシティから適応

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

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

于 2009-08-22T02:22:29.607 に答える
2

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

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

于 2009-08-23T07:03:38.283 に答える