在 Ruby 中生成随机 IP 地址的最短方法是什么?
正如标题所说,出于测试目的。
Just like the title says, wanted for testing purposes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
正如标题所说,出于测试目的。
Just like the title says, wanted for testing purposes.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
您可以使用 IPAddr
You could use IPAddr
如果您想要一个真正随机的 IP 地址,
Array.new(4){rand(256)}.join('.')
即可实现If you want a truly random IP address,
Array.new(4){rand(256)}.join('.')
does it我建议使用 Faker
https://github.com/stympy/faker#fakerinternet
I would suggest using Faker
https://github.com/stympy/faker#fakerinternet
我之前用过这个来生成随机IP,然后用Resolv验证它
I've used this before to generate a random ip then validate it with Resolv
我打算在 Lass 的评论中添加一些代码,以获得任何安全的RFC1918 地址,但声誉还不够。
因此,如果我们采用以下数学结果:
并将它们填充到一个数组中,该数组填充到 IPAddr.new 方法中
大多数 RF1918 空间都会生成。不幸的是,这总是会产生 10.0.XX 地址,但如果有人正在寻找某种看起来不太糟糕的单行格式的地址变化,那么这应该适合测试。
与 Faker 相比,此类方法或 Lass 方法的一个主要好处是,如果代码出于某种原因尝试访问随机地址,则可以降低意外占用某人互联网资源的风险。
I was going to tack on to Lass's comment with some code to get any safe RFC1918 address, but not enough reputation yet.
So, if we take the following math results:
and, stuff them into an array which is stuffed in the IPAddr.new method
Most any RF1918 space is generated. Unfortunately, this will always produce 10.0.X.X addresses, but that should be fine for testing if one was looking for some address variety in a not too terrible looking one-liner format.
A major benefit of something like this or Lass's method over Faker is there is reduced risk for accidental taxing of someone's Internet resources if the code attempts to reach out to the random address for some reason.
要在合理的网络范围(例如 10.0.0.0/24 或 2001:db8::/64)内生成有效 IP 地址,请执行以下操作:
这可以推广到任何子网:
To generate valid IP addresses within a reasonable network range (e.g. 10.0.0.0/24 or 2001:db8::/64), do this:
This can be generalized to any subnet: