我可以让ruby通过特定的iface发送网络流量吗?

时间:2010-06-13 18:00:34

标签: ruby network-programming

我正在编写一个脚本,用于获取外部IP地址以及有关每个iface的其他信息。我无法弄清楚如何让ruby通过特定的iface(例如eth0和wlan0)发送流量。我目前正在使用open-uri库打开http://whatismyip.org并将其读入变量。

def get_external_ip
  begin
    open("http://whatismyip.org") { |f| return f.read }
  rescue
    return "none"
  end
end

有没有办法在脚本的运行时或脚本本身(理想情况下)中指定它?

1 个答案:

答案 0 :(得分:0)

您可以查看此tutorial on Ruby Socket programming。但我怀疑它可以在像open这样的高级别上完成。通常从路由表中选择接口,具体取决于目标IP - 因此可能更容易修改/调整路由表。