2011-01-16 18 views
1

Ich habe ein Problem mit dem netaddr-Paket - Version 0.7.5. Dieser Code funktioniert wie erwartet und druckt die Liste der IP-Adressen im Bereich:Python: IP-Bereiche auflisten

from netaddr import IPNetwork 

ipnetwork = '192.168.0.0/24' 
print list(IPNetwork(ipnetwork).iter_hosts()) 

Allerdings, wenn ich auf das Netzwerk zu ändern, sagen wir, ‚192.168.0.0/8‘ mein Skript hängt nur:

from netaddr import IPNetwork 

ipnetwork = '192.168.0.0/8' 
print list(IPNetwork(ipnetwork).iter_hosts()) 

Fehle ich etwas oder ist das ein Fehler?

EDIT

Sieht aus wie ich etwas fehlte durch nicht erkennen, wie groß dieser Bereich ist!

Antwort

2

Sind Sie sicher, dass es nicht nur viel Zeit in Anspruch nimmt? Sie machen eine Liste aus dem Iterator. Wenn ich das auf meinem Rechner starte, bekomme ich 100% CPU-Auslastung und Speicherauslastung. Ich kann auch den gesamten Bereich ausdrucken, wenn ich den Iterator direkt benutze.

+0

Whoops, tut mir leid, ich habe das gerade getan. Ich wusste nicht, dass die Auswahl so groß war. – normski

+0

@normski Yup, 2 ** 24 Elemente, total nichts besonderes =) –

Verwandte Themen