代码之家  ›  专栏  ›  技术社区  ›  ariefbayu

如何从shell命令获取pppd inet地址

  •  2
  • ariefbayu  · 技术社区  · 16 年前

    我不确定是在这里发布还是在serverfault上发布。 不管怎样,我正试图绕过公司的防火墙,使用我手机的3G网络连接到一些媒体共享网站。我想出了一个简单的IP路由命令,它将pppd的inet地址作为参数。但是,我希望通过从脚本中直接读取inet地址,而不是通过命令行参数传递它,使其更加自动化。

    这是一个更明显的场景:

    • 现在的命令调用: $jumpfirewall xxx.xxx.xxx.xxx

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

    您知道一些命令或库,我可以用它们从命令行中读取它吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Tim    16 年前

    改编自 cyberciti :

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

    这个 ifconfig ppp0 将获得您的主要购买力平价接口的信息; grep 将其缩减到包含IP地址的行;该 cut 把后面的东西都分开 inet addr: 高达 bcast: ,给予 1.2.3.4 Bcast: awk 调用将只打印第一个(空格分隔)字段,只留下IP地址。

        2
  •  2
  •   caf    16 年前

    pppd 自动调用脚本 /etc/ppp/ip-up 当链接被打开时。在这个脚本中, $4 是PPP链接的本地IP地址。(关于某些分配, /ETC/PPP/IPUP 设置为调用脚本 /etc/ppp/ip-up.d $PPP_LOCAL 设置为IP地址,以便将脚本放在那里)。

    这样,您就不必手动调用脚本了——只要打开ppp链接,它就会自动运行。有一个对应的 /etc/ppp/ip-down 当链接断开时,可以使用撤消路由。