Cara mengubah suai alamat IP dalam bahasa Go: 1. Gunakan antara muka fungsi "net.InterfaceAddrs()" dalam pustaka bersih untuk mendapatkan alamat IP tempatan 2. Gunakan fungsi "LinkByName" untuk mendapatkan alamat IP bernama "eth0" maklumat antara muka rangkaian, kemudian gunakan fungsi "ParseAddr" untuk menghuraikan alamat IP baharu, dan kemudian gunakan fungsi "AddrAdd" untuk menambah IP baharu pada antara muka rangkaian yang diberikan; kaedah sebagai kod untuk mendapatkan alamat IP tempatan, Sahkan bahawa alamat IP tempatan telah berubah.
Persekitaran pengendalian tutorial ini: Sistem Windows 10, pergi versi 1.20, komputer dell g3.
Bahasa Go ialah bahasa pengaturcaraan berprestasi tinggi yang disokong serentak yang menyediakan banyak perpustakaan pengaturcaraan rangkaian yang mudah digunakan. Jika anda ingin mengubah suai alamat IP, bahasa Go menyediakan beberapa API dan alatan untuk memudahkan operasi. Dalam artikel ini, kami akan memperkenalkan cara mengubah suai alamat IP menggunakan bahasa Go.
Cara mengubah suai alamat ip:
1 Dapatkan alamat IP setempat
Dapatkan alamat IP setempat Pergi bahasa Sangat mudah. Kita boleh menggunakan antara muka fungsi dalam perpustakaan bersih untuk mendapatkan alamat IP tempatan. Berikut ialah contoh kod untuk mendapatkan alamat IP tempatan:
addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println("Error:", err) } for _, addr := range addrs { if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { fmt.Println("Local IP: ", ipnet.IP.String()) } } }
Dalam coretan kod ini, kami menggunakan antara muka fungsi net.InterfaceAddrs() dalam pustaka bersih untuk mendapatkan alamat IP tempatan. Fungsi ini mengembalikan tatasusunan menyimpan alamat IP. Gunakan gelung untuk melintasi tatasusunan alamat IP, menapis alamat IP yang bukan alamat IPv4 dan bukan alamat gelung balik, dan akhirnya mencetak alamat IP setempat.
2. Ubah suai alamat IP setempat
Untuk mengubah suai alamat IP tempatan, kita perlu menggunakan perpustakaan netlink. Netlink ialah keluarga protokol yang digunakan untuk komunikasi antara proses dalam kernel Linux Ia digunakan terutamanya untuk komunikasi antara kernel dan program ruang pengguna. Pustaka Netlink menyediakan satu set fungsi dan struktur yang membolehkan kami mengurus dan mengawal antara muka rangkaian dengan lebih mudah.
Berikut ialah contoh kod untuk menukar alamat IP tempatan menggunakan pustaka netlink:
link, err := netlink.LinkByName("eth0") if err != nil { panic(err) } addr, err := netlink.ParseAddr("192.168.0.2/24") if err != nil { panic(err) } if err := netlink.AddrAdd(link, addr); err != nil { panic(err) }
Dalam coretan kod ini, kami mula-mula menggunakan fungsi LinkByName untuk mendapatkan maklumat antara muka rangkaian bernama "eth0 ". Seterusnya, kami menggunakan fungsi ParseAddr untuk menghuraikan alamat IP baharu, dan kemudian menggunakan fungsi AddrAdd untuk menambah alamat IP baharu pada antara muka rangkaian yang diberikan.
3. Sahkan sama ada alamat IP tempatan telah berubah
Selepas kami mengubah suai alamat IP tempatan, kami boleh menjalankan kod itu semula untuk menyemak sama ada perubahan itu berjaya. Menggunakan kaedah yang sama seperti kod untuk mendapatkan alamat IP tempatan, kami boleh menyemak sama ada alamat IP tempatan telah bertukar kepada alamat IP baharu yang kami tetapkan. Contoh kod akhir adalah seperti berikut:
package main import ( "fmt" "github.com/vishvananda/netlink" "net" ) func main() { addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println("Error:", err) } for _, addr := range addrs { if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { fmt.Println("Local IP: ", ipnet.IP.String()) } } } link, err := netlink.LinkByName("eth0") if err != nil { panic(err) } addr, err := netlink.ParseAddr("192.168.0.2/24") if err != nil { panic(err) } if err := netlink.AddrAdd(link, addr); err != nil { panic(err) } addrs, err = net.InterfaceAddrs() if err != nil { fmt.Println("Error:", err) } for _, addr := range addrs { if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { fmt.Println("Local IP: ", ipnet.IP.String()) } } } }
Coretan kod ini mencetak dua alamat IP tempatan. Yang pertama ialah alamat IP tempatan asal, dan yang kedua ialah alamat IP tempatan baharu yang dicetak selepas mengubah suai alamat IP tempatan. Dengan cara ini, kami boleh menyemak sama ada alamat IP tempatan berjaya diubah suai.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara mengubah suai alamat IP tempatan menggunakan bahasa Go. Kami mula-mula menunjukkan cara mendapatkan alamat IP tempatan, dan kemudian memperkenalkan cara menggunakan perpustakaan netlink untuk mengubah suai alamat IP tempatan. Akhir sekali, kami menunjukkan cara untuk menyemak sama ada alamat IP tempatan telah berjaya ditukar. Semoga artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai alamat ip dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!