Seite 1 von 1

Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 18:09
von ppp
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?

Code: Alles auswählen

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

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 18:30
von __deets__
Das geht vielleicht irgendwie, aber es ist ein ungewöhnliches Anliegen. Warum glaubst du das brauchen zu müssen? Was ist drin eigentliches Problem?

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 18:35
von ppp
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.

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 18:44
von __deets__
Das hier könnte helfen: https://pypi.org/project/netifaces/

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 19:01
von ppp
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.

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 19:07
von __deets__
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.

Re: Herausfinden welches Netzwerkinterface ein Socket benutzt

Verfasst: Sonntag 31. Oktober 2021, 19:09
von ppp
Ok. Schade. Muss mit dem Ergebnis von der Methode arbeiten. Dachte, dass es einfacher geht. Danke Dir.