Genau wie der Titel sagt, für Testzwecke gesucht.Was ist der kürzeste Weg, um eine zufällige IP-Adresse in Ruby zu generieren?
Danke!
Genau wie der Titel sagt, für Testzwecke gesucht.Was ist der kürzeste Weg, um eine zufällige IP-Adresse in Ruby zu generieren?
Danke!
zu erzeugen, könnte Sie IPAddr verwenden
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)]
Das wird nicht immer eine gültige Adresse generieren. (In seltenen Fällen könnte es "0.0.0.0" oder "255.255.255.255" generieren, die keine gültigen Adressen sind) –
Brechen diese beiden Adressen eine Regel? Sie sehen OK für mich aus. Da das OP nur eine vage Frage stellte, sind diese beiden genauso gut wie alle anderen. – dbasnett
Wenn ich mich recht erinnere, sind sie gute IP-Nummern, sind aber Netzwerk-Broadcasts vor-zugewiesen. Kein Computer kann eine IP-Adresse von 0.0.0.0 oder 255.255.255.255 haben, aber sie können auf Anforderungen an diese Nummern antworten. Wenn das in einer Anwendung Sinn macht, ist es in Ordnung, sie zu verwenden. Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Broadcast_address. –
Wenn Sie eine wirklich zufällige IP-Adresse möchten, Array.new(4){rand(256)}.join('.')
tut es
Ich habe dies benutzt, bevor eine zufällige IP-Validierung es dann mit 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
würde ich vorschlagen, Faker mit
https://github.com/stympy/faker#fakerinternet
Faker::Internet.ip_v4_address #=> "24.29.18.175"
das ist ziemlich genial, eigentlich .... ist es aktiv und gepflegt. So hat es sowohl IPv4 und 6 als auch URI. – Angela
Obwohl ich die Bibliothek nicht gut kenne, würde ich 'Faker' auch empfehlen. Mein Hauptgrund ist, dass diese Bibliothek anscheinend für Ihren Anwendungsfall _created_ ist. [Die Dokumente] (https://github.com/stympy/faker#fakerinternet) schlagen auch vor, dass es spezielle IP-Adressen auch besser handhabt. – Aaron
Vorsicht, das kann Adressen erzeugen, die mit 0 beginnen, was auf jeden Fall (RFC3330) ungültig ist. – mdrozdziel
Da 0s nicht ideal sind, würde ich die Array-Antwort unter –
empfan- gen. Um auf der sicheren Seite zu sein, generiert dies gültige IPv4-Adressen aus dem ** 10.xxx ** privaten Subnetz: IPAddr.new (10 * 2 **) 24 + rand (2 ** 24), Sockel :: AF_INET) ' – Laas