下面是修改后的代码,接收三个参数ip、ifName和ipMask,并将相应的IP地址添加到指定的网络接口上:
package main
import (
"fmt"
"net"
"syscall"
"github.com/vishvananda/netlink"
)
func main() {
ip := "192.0.0.1"
ifName := "ens2"
ipMask := "255.255.255.0"
addrStr := fmt.Sprintf("%s/%s", ip, ipMask)
link, err := netlink.LinkByName(ifName)
if err != nil {
fmt.Printf("Failed to get link: %v\n", err)
return
}
addr, err := netlink.ParseAddr(addrStr)
if err != nil {
fmt.Printf("Failed to parse IP address: %v\n", err)
return
}
err = netlink.AddrAdd(link, addr)
if err != nil {
fmt.Printf("Failed to add IP address: %v\n", err)
return
}
syscall.Sync() // 将更改写入磁盘以确保持久性
fmt.Println("IP address added successfully")
}
您可以将所需的IP地址、网络接口名称和子网掩码分别传递给 ip
、ifName
和 ipMask
变量。然后,通过使用 netlink
包来获取相应的网络接口,并使用 netlink.ParseAddr
解析IP地址字符串。最后,调用 netlink.AddrAdd
来将该IP地址添加到指定的网络接口上。
请注意,在对代码进行实际使用时,可能需要根据具体情况进行优化和适配,确保权限和路径设置正确。
内容由零声教学AI助手提供,问题来源于学员提问