2

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

这是场景,使其更明显:

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

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

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

4

2 回答 2

4

改编自cyberciti

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

ifconfig ppp0获取您的主要 PPP 接口的信息;将grep其削减到包含 IP 地址的行;在up tocut之后分裂出所有东西,给出类似的东西;并且该调用将仅打印第一个(空格分隔)字段,只留下 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 回答