Ruby:获取本地 IP (nix)
我需要获取我的 IP(即 DHCP)。我在我的 environment.rb
中使用它:
LOCAL_IP = `ifconfig wlan0`.match(/inet addr:(\d*\.\d*\.\d*\.\d*)/)[1] || "localhost"
但是有 rubyway 或更干净的解决方案吗?
I need to get my IP (that is DHCP). I use this in my environment.rb
:
LOCAL_IP = `ifconfig wlan0`.match(/inet addr:(\d*\.\d*\.\d*\.\d*)/)[1] || "localhost"
But is there rubyway or more clean solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一台服务器通常具有多个接口,至少一个私有接口和一个公共接口。
由于这里的所有答案都处理这个简单的场景,因此一种更简洁的方法是向 Socket 询问当前的 ip_address_list() ,如下所示:
两者都返回一个
Addrinfo
对象,因此如果您需要一个字符串,您可以使用 ip_address() 方法,如下所示:您可以轻松地找出更适合您的情况的解决方案,更改用于过滤所需接口地址的 Addrinfo 方法。
A server typically has more than one interface, at least one private and one public.
Since all the answers here deal with this simple scenario, a cleaner way is to ask Socket for the current
ip_address_list()
as in:Both returns an
Addrinfo
object, so if you need a string you can use theip_address()
method, as in:You can easily work out the more suitable solution to your case changing Addrinfo methods used to filter the required interface address.
找到此处。
Found here.
这是 steenslag 解决方案的一个小修改
Here is a small modification of steenslag's solution