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, }
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}
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!