是否有本地Ruby方法来获取主机的默认网关?
作为标题。我之所以需要原生Ruby方法,是因为我希望代码能够跨Linux和MacOS移植。“ip路由显示”可以在Linux上使用,但MacOS没有“ip”命令是否有本地Ruby方法来获取主机的默认网关?,ruby,Ruby,作为标题。我之所以需要原生Ruby方法,是因为我希望代码能够跨Linux和MacOS移植。“ip路由显示”可以在Linux上使用,但MacOS没有“ip”命令 如果没有原生Ruby方法,也可以使用其他可移植方法。我不相信Socket可以向您提供您要查找的数据,但您可以在MacOS上使用netstat并进行平台检测,在命令之间进行选择: def gateway case Gem::Platform.local.os when "darwin" then `netstat -rn -f in
如果没有原生Ruby方法,也可以使用其他可移植方法。我不相信
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
检查类应该能够从那里获得一些有用的信息。可以使用此macos样式欢迎使用堆栈溢出。请阅读“”和“”,以及链接页和“”。你的问题问得不好。你找过了吗?如果不是,为什么?如果是的话,在哪里,为什么没有帮助?你写代码了吗?若否,原因为何?如果是这样,那么演示您所问的问题所需的最少代码是什么?可以有多个默认值,也许其中一个具有最低的度量。我认为这个应该解决这个问题:ip路由| sort-nk9 | awk'/default/{print$3;exit;}'