你可以使用net
包和os/exec
包来实现在Golang中根据IP、掩码和接口名新增主机接口。下面是一个示例代码:
package main
import (
"fmt"
"net"
"os"
"os/exec"
)
func main() {
ip := net.ParseIP("192.168.1.100") // 要添加的IP地址
maskStr := "24" // 掩码为24
ifaceName := "eth0" // 要添加到的接口名
maskInt, err := net.IPMask(net.ParseIP("255.255.255.0").To4()).Size()
if err != nil {
fmt.Println("解析掩码失败:", err)
return
}
if maskStr != "" {
maskInt, err = net.IPMask(net.ParseIP("255.255.255."+maskStr).To4()).Size()
if err != nil {
fmt.Println("解析掩码失败:", err)
return
}
}
cmd := exec.Command("ip", "addr", "add", ip.String()+"/"+fmt.Sprint(maskInt), "dev", ifaceName)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
fmt.Println("新增主机接口失败:", err)
return
}
fmt.Println("成功新增主机接口")
}
以上代码将解析并转换了字符串形式的子网掩码为对应的整数,然后使用 ip addr add
命令将指定的 IP 地址和子网掩码添加到指定的网络接口上。
请注意,此示例仅适用于Linux系统,请根据实际情况调整代码。同时,确保你的程序具有足够的权限来执行该操作(例如以管理员权限运行)。
内容由零声教学AI助手提供,问题来源于学员提问