Files
netcli/cmd/dhcp.go

49 lines
968 B
Go

package cmd
import (
"fmt"
"net"
"netcli/internal/constants"
netmod "netcli/internal/net"
"github.com/spf13/cobra"
)
// dhcpCmd represents the dhcp command
var dhcpCmd = &cobra.Command{
Use: "dhcp",
Short: "将指定网卡改为 DHCP 自动获取 IP",
RunE: func(cmd *cobra.Command, args []string) error {
// 检查管理员权限
if !netmod.IsAdmin() {
fmt.Println("程序需要管理员权限,尝试提升...")
return netmod.RunAsAdmin()
}
// 获取所有网卡
ifaces, err := net.Interfaces()
if err != nil {
return fmt.Errorf("获取网卡失败: %w", err)
}
// 用户选择网卡
nic, err := netmod.ChooseNic(ifaces, constants.DefaultDHCPMsg)
if err != nil {
return err
}
// 执行 netsh 命令设置 DHCP
if err := netmod.SetDHCP(nic); err != nil {
return err
}
fmt.Printf("网卡 %s 已设置为 DHCP 自动获取 IP\n", nic.Name)
return nil
},
}
func init() {
rootCmd.AddCommand(dhcpCmd)
}