Ich versuche eine Liste aller MAC-Adressen zu erstellen, die Apple-Geräte haben werden. oui.txt
sagt mir Apple hat 77 MAC-Bereiche zugewiesen zu verwenden. Diese Bereiche kommen in Form von:Meine Python for-Schleife verursacht einen MemoryError. Wie kann ich das optimieren?
00:00:00
00:11:11
etc...
Dies lässt mich die letzten drei HEX Ziffern anhängen. Das ist 16^6
. Insgesamt 1291845632 Apple MAC-Adressen.
Das Problem, das ich habe, schreibt ein Programm, um eine Liste dieser MAC-Adressen zu erstellen. Hier ist mein aktueller Code:
import re
apple_mac_range = []
apple_macs = []
# Parse the HTML of http://standards.ieee.org/cgi-bin/ouisearch to get the MACs
with open('apple mac list', 'r') as f:
for line in f.readlines():
match = re.search(r'[\w\d]{2}-[\w\d]{2}-[\w\d]{2}', line)
if match:
apple_mac_range.append(match.group().split('-'))
for mac in apple_mac_range:
for i in range(1, 1291845633):
print i
Das gibt mir ein MemoryError
... Wie kann ich es optimieren?
Warum in aller Welt möchten Sie eine vollständige Liste all dieser MAC-Adressen erstellen? –
Warum müssen Sie mehr als eine Milliarde Adressen aufzählen? Was ist das Problem, das Sie wirklich versuchen zu lösen? – SingleNegationElimination
Nun, ich möchte wirklich nur iPhone-Geräte-MACs, aber von dem, was ich bisher gefunden habe, scheint Apple keinen bestimmten Bereich zu haben, den sie für bestimmte Geräte verwenden. – dave