Hallo,
ist es möglich über Python3 herauszufinden über welches Interface die u.g. Kommunikation stattfindet? Ich habe in meinem Linuxsystem die Netzwerkinterfaces lo und eno1. Die Kommunikation mit externen Seiten findet über eno1 statt. Aber wie kann ich das über Python3 rauskriegen?
def getIp():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# doesn't even have to be reachable
s.connect(('10.255.255.255', 1))
IP = s.getsockname()[0]
print(s)
except Exception:
IP = '127.0.0.1'
finally:
s.close()
return IP
Ich möchte die Subnetzmaske zu der IP rauskriegen, die mit 10.255.255.255 kommuniziert. Ich kriege mit der Methode raus, welche IP Adresse ich habe, aber nicht wie die Subnetzmaske ist.
Danke. Damit habe ich auch ein bisschen ausprobiert. Viele Methoden wollen das Interface als Parameter haben. Ich muss mal gucken, ob ich da was finde. Die Rückgabe des muss eindeutig sein. In einem Beispiel auf der Seite sehe ich, dass ein Interface zwei IPs hat.
Na via dem socket bekommst du ja die IP über die du raus gekommen bist. Und das kannst du dann mit der Rückgabe abgleichen. Viel einfacher wird’s nicht. Dazu ist routing zu kompliziert.