gpt4 book ai didi

ruby - 删除 Ruby 中的最后一个 IP 地址八位字节

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:58 24 4
gpt4 key购买 nike

在 Ruby 中,我想获取我的本地 IP 地址并将其转换为我的网络 ID(例如 192.168.1.1 到 192.168.1.0)

require "socket"
local_ip = UDPSocket.open {|s| s.connect("64.233.187.99", 1); s.addr.last}

这会给我我的本地 ip,但我怎样才能删除最后一个八位字节直到点 (.)?

最佳答案

快速而肮脏的方式就像

"192.168.1.1".rpartition(".")[0]
=> "192.168.1"

但是如果您知道子网掩码或者如果您在 24 位 (255.255.255.0) 以外的子网上运行,您应该使用 IPAddr 模块,因为这些网络可能因子网而异。

> require 'IPAddr'
=> true
>
> IPAddr.new("64.233.187.99/24").to_s
=> "64.233.187.0"

> IPAddr.new("64.233.187.99/20").to_s
=> "64.233.176.0"

引用:

关于ruby - 删除 Ruby 中的最后一个 IP 地址八位字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com