是否有一种本机红宝石方法来获取主机机器的默认网关



作为标题。我想要一种本机红宝石方法的原因是因为我希望在Linux和MacOS上使用代码可移植。" IP路由显示"可以在Linux上使用,但MacOS没有" IP"命令。

如果没有本机红宝石方法,其他便携式方法也可以接受。

我不相信Socket可以向您提供所需的数据,但是您可以在MacOS上使用netstat,并在命令之间进行平台检测:

def gateway
  case Gem::Platform.local.os
  when "darwin" then `netstat -rn -f inet | grep 'default' | awk '{print $2}'`
  else `ip route | awk '/default/{print $3}'`
  end.chomp
end

最新更新