Tak jak mówi tytuł, poszukiwany do celów testowych.Jaki jest najkrótszy sposób wygenerowania losowego adresu IP w Ruby?
Dzięki!
Tak jak mówi tytuł, poszukiwany do celów testowych.Jaki jest najkrótszy sposób wygenerowania losowego adresu IP w Ruby?
Dzięki!
Można użyć ipaddr
require 'ipaddr'
ipv4 = IPAddr.new(rand(2**32),Socket::AF_INET)
ipv6 = IPAddr.new(rand(2**128),Socket::AF_INET6)
ip = "%d.%d.%d.%d" % [rand(256), rand(256), rand(256), rand(256)]
To nie zawsze wygeneruje poprawny adres. (W rzadkich przypadkach może generować '0.0.0.0' lub' 255.255.255.255', które nie są poprawnymi adresami) –
Czy te dwa adresy łamią jakąś zasadę? Wyglądają mi dobrze. Ponieważ PO tylko zadał niejasne pytanie, te dwie są tak samo dobre jak inne. – dbasnett
Jeśli dobrze pamiętam, są to dobre numery IP, ale są wcześniej przypisane do transmisji sieciowych. Żaden komputer nie może mieć adresu IP 0.0.0.0 lub 255.255.255.255, ale może odpowiadać na żądania dotyczące tych numerów. Jeśli ma to sens w aplikacji, można z nich korzystać. Więcej informacji można znaleźć na stronie http://en.wikipedia.org/wiki/Broadcast_address. –
Jeśli chcesz naprawdę losowy adres IP, Array.new(4){rand(256)}.join('.')
robi
Użyłem tego wcześniej, aby wygenerować losowy ip następnie zatwierdzić ją Resolv
ip = "#{rand(99)}.#{rand(100)}.#{rand(10)}.#{rand(255)}"
begin
if ip
host = Resolv.new.getname(ip)
puts "#{c} #{real_ip.length} #{ip} #{host}"
end
rescue Exception => e
puts "FAKE #{ip}"
end
Proponuję skorzystać z Fakera
https://github.com/stympy/faker#fakerinternet
Faker::Internet.ip_v4_address #=> "24.29.18.175"
to jest całkiem niesamowite, faktycznie .... jest aktywne i utrzymywane. W ten sposób ma zarówno IPv4 i 6 oraz URI. – Angela
Chociaż nie znam się dobrze na bibliotece, polecam też "Faker". Głównym powodem jest to, że ta biblioteka wydaje się być utworzona dla twojego przypadku użycia. [The docs] (https://github.com/stympy/faker#fakerinternet) sugerują również, że obsługuje on również specjalne adresy IP. – Aaron
Należy pamiętać, że może to generować adresy zaczynające się od 0, co z całą pewnością (RFC3330) jest nieprawidłowe. – mdrozdziel
od startu 0s nie są idealne, chciałbym rec odpowiedzi tablicy poniżej –
To jest po bezpiecznej stronie, to generuje prawidłowe adresy IPv4 z prywatnej podsieci ** 10.xxx **: 'IPAddr.new (10 * 2 ** 24 + rand (2 ** 24), Socket :: AF_INET) ' – Laas