php-Editor Xiaoxin ist hier, um Ihnen vorzustellen, wie Sie mit Golang Ihre eigene WLAN-IP-Adresse erhalten. Golang ist eine effiziente und prägnante Programmiersprache, die viele praktische Methoden zur Bewältigung netzwerkbezogener Aufgaben bietet. Um die WLAN-IP-Adresse zu erhalten, können wir das Net-Paket und das OS/Exec-Paket von Golang verwenden, um einige Systembefehle auszuführen. Mit einem einfachen Code können wir die IP-Adresse des WLANs ermitteln, mit dem wir verbunden sind. Werfen wir einen Blick auf den konkreten Umsetzungsprozess!
func getLocalIP() ([]string, error) { addrs, err := net.InterfaceAddrs() if err != nil { return nil, err } IPs := make([]string, 0) for _, a := range addrs { if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { if ipNet.IP.To4() != nil { IPs = append(IPs, ipNet.IP.To4().String()) } } } return IPs, nil } func TestGetLocalIP() { addrs, _ := getLocalIP() for _, a := range addrs { fmt.Println(a) } }
Ich habe dies verwendet, aber es gab mir eine Liste mit IP-Adressen.
Ich möchte nur meine lokale WLAN-Adresse erhalten. Was soll ich tun?
Sie müssen mindestens eine dieser beiden Informationen kennen:
en0
beispielsweise auf dem Mac, aber ymmv) ifs, _ := net.interfaces() for _, ifi := range ifs { if ifi.name == "en0" { // or whatever other filter you want addrs, _ := ifi.addresses() for _, a := range addrs { // filter to get the one you want, typically unicast ip4 } } }
Einfacher:
if, _ := net.interfacebyname("en0") addrs, _ := if.addresses() for _, a := range addrs { // as before, filter for the address you want }
// Loop over interfaces, get addrs, then loop over addresses and get IPs for those that have them if ip.Mask(net.CIDRMask(16, 32)) == myNetworkAddress { // The interface you got this IP from is probably your wifi interface }
Das Verlassen auf eine Schnittstelle mit einem bestimmten Namen ist im Allgemeinen nicht portierbar. Ich gehe also davon aus, dass Sie dies nur auf Ihrer eigenen Workstation ausführen möchten. Wenn dies jedoch auf mehreren Hosts ausgeführt werden muss, möchten Sie wahrscheinlich zumindest damit beginnen, die richtige Netzwerkadresse abzugleichen. Es gibt noch andere Tricks – wenn Sie davon ausgehen, dass Sie in einer Serverfarm arbeiten, in der jeder Host eine Netzwerkkarte des Herstellers xxx hat, können Sie die Mac-Adresse nachschlagen und sehen, ob sie von diesem Hersteller stammt – Sie können dies hier ausprobieren . Sie können auch andere Filter verwenden, diese passen jedoch gut zu Ihrem persönlichen Anwendungsfall.
Das obige ist der detaillierte Inhalt vonWie erhalte ich meine WLAN-IP-Adresse mit Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!