Wie wähle ich mit einer bestimmten Netzwerkschnittstellenadresse in Go?

DDD
Freigeben: 2024-11-26 00:59:10
Original
809 Leute haben es durchsucht

How to Dial with a Specific Network Interface Address in Go?

Wählen mit einer bestimmten Netzwerkschnittstellenadresse in Go

Im Bereich der Vernetzung zielt Go darauf ab, einen Low-Level-Zugriff auf Systemressourcen bereitzustellen. Eine dieser Aufgaben ist die Fähigkeit, eine Verbindung über eine bestimmte Netzwerkschnittstellenadresse herzustellen.

Um dies zu erreichen, bietet die Go-Standardbibliothek die Funktion InterfaceByName an, um eine Schnittstelle anhand ihres Namens abzurufen (z. B. „eth1“). Das Extrahieren der Quelladresse aus der Addrs-Methode der zurückgegebenen Schnittstelle ergibt jedoch einen *net.IPnet-Typ, der sowohl eine Adresse als auch eine Netzmaske kapselt.

Um diese Adresse zum Wählen zu verwenden, muss man sie in ein *net konvertieren .TCPAdr unter Verwendung seines IP-Felds:

ief, err := net.InterfaceByName("eth1")
if err !=nil{
        log.Fatal(err)
}
addrs, err := ief.Addrs()
if err !=nil{
        log.Fatal(err)
}

tcpAddr := &net.TCPAddr{
        IP: addrs[0].(*net.IPNet).IP,
}
Nach dem Login kopieren

Mit diesem modifizierten TCPAddr können Sie die lokale Adresse für die Anwahl mithilfe des Dialers angeben LocalAddr-Feld:

d := net.Dialer{LocalAddr: tcpAddr}
Nach dem Login kopieren

Durch entsprechende Einstellung der lokalen Adresse können Sie eine Verbindung über die gewünschte Netzwerkschnittstellenadresse herstellen und so sicherstellen, dass der Netzwerkverkehr über die vorgesehene Schnittstelle geleitet wird.

Das obige ist der detaillierte Inhalt vonWie wähle ich mit einer bestimmten Netzwerkschnittstellenadresse in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage