【问题标题】:How to get pppd inet address from shell command如何从 shell 命令获取 pppd inet 地址
【发布时间】:2009-08-22 02:13:24
【问题描述】:

我不确定是在此处发布还是在 ServerFault 发布。 无论如何,我正在尝试绕过公司的防火墙,以使用我手机的 3g 网络连接到一些媒体共享站点。我想出了一个简单的 ip route 命令,它以 pppd 的 inet 地址作为参数。但是,我想通过直接从脚本中读取 inet 地址来使其更加自动化,而不是通过命令行参数传递它。

为了更明显,这是场景:

  • 截至目前的命令调用:$jumpfirewall xxx.xxx.xxx.xxx

  • 我想要的命令调用:$jumpfirewall

你知道一些我可以用来从命令行读取它的命令或库吗?

【问题讨论】:

    标签: linux command-line ppp


    【解决方案1】:

    改编自cyberciti

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

    ifconfig ppp0 将获取您的主要 PPP 接口的信息; grep 将其缩减到包含 IP 地址的行; cutinet addr: 之后的所有内容拆分到bcast:,给出类似1.2.3.4 Bcast: 的内容; awk 调用将只打印第一个(空格分隔)字段,只留下 IP 地址。

    【讨论】:

      【解决方案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 撤消您的路线。

      【讨论】:

      • 我使用脚本是因为我不是每次使用 3g 网络时都使用隧道。无论如何,我投票赞成信息
      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2018-07-14
      相关资源
      最近更新 更多