hoffe mir kann jemand helfen. Ich benutze das PCapy Modul um in Python Pakete zu capturen. PCapy bieten eine Funktion an, mit der ich alle Network Devices auslesen kann. Mit dieser Funktion wähle ich mir dann in meinem Programm das Device aus, welches die Pakete capturen soll.
Soweit so gut.
Jetzt würde ich die Pakete gerne weiterverarbeiten, also die Header Daten auslesen und auswerten. Jedoch brauche ich dafür die IP Adresse des Devices. Zur Zeit trage ich sie jedesmal per Hand ein, was keine wirkliche Lösung ist. Weiß jemand wie das geht?
Es gibt eine Funktion, welche mir das Netzwerk des Devices angibt, aber das hilft mir auch nicht wirklich weiter.
Mit Socket könnte ich zwar die IP rausbekommen, aber es werden 2 aktive Devices während dem capturen in Betrieb sein und ich weiß nicht ob das dann mit getsockname() funktioniert.
Hoffe es war jetzt nicht zu verwirrend. Falls ihr Fragen habt oder mehr Infos braucht, meldet euch.
Hier mal der Codeausschnitt, mit dem ich die Devices auslese:
Code: Alles auswählen
from pcapy import findalldevs
def getInterface():
ifs = findalldevs()
# No interfaces available, abort.
if 0 == len(ifs):
print "You don't have enough permissions to open any interface on this system."
sys.exit(1)
# Ask the user to choose an interface from the list.
count = 0
for iface in ifs:
print '%i - %s' % (count, iface)
count += 1
idx = int(raw_input('Please select an interface: '))
return ifs[idx]