Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mendapatkan alamat IP wifi saya menggunakan Golang?
editor php Xiaoxin di sini untuk memperkenalkan cara menggunakan Golang untuk mendapatkan alamat IP wifi anda sendiri. Golang ialah bahasa pengaturcaraan yang cekap dan ringkas yang menyediakan banyak kaedah mudah untuk mengendalikan tugas berkaitan rangkaian. Untuk mendapatkan alamat IP wifi, kita boleh menggunakan pakej bersih Golang dan pakej os/exec untuk melaksanakan beberapa arahan sistem. Dengan beberapa kod mudah, kami boleh mendapatkan alamat IP wifi yang kami sambungkan. Mari kita lihat proses pelaksanaan khusus!
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) } }
Saya menggunakan ini tetapi ia memberi saya senarai alamat ip.
Saya hanya ingin mendapatkan alamat wifi tempatan saya, apakah yang perlu saya lakukan?
Anda perlu mengetahui sekurang-kurangnya satu daripada dua maklumat ini:
en0
pada mac, contohnya, tetapi 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 } } }
Lebih mudah:
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 }
Bergantung pada antara muka dengan nama tertentu biasanya tidak mudah alih. Jadi walaupun andaian saya ialah anda hanya mahu menjalankan ini di stesen kerja anda sendiri, jika ini adalah sesuatu yang perlu dijalankan merentasi berbilang hos, anda mungkin mahu sekurang-kurangnya bermula dengan memadankan alamat rangkaian yang betul. Terdapat helah lain - jika anda tahu dengan mengandaikan anda akan berjalan di ladang pelayan di mana setiap hos mempunyai nic dari pengeluar xxx, anda boleh mencari alamat mac dan melihat sama ada ia dari pengeluar itu - anda boleh mencuba ini di sini . Anda boleh menggunakan penapis lain juga, tetapi ini sesuai untuk kes penggunaan peribadi anda.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan alamat IP wifi saya menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!