第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將 CIDR 塊轉(zhuǎn)換為 net.IP 類型

將 CIDR 塊轉(zhuǎn)換為 net.IP 類型

Go
慕工程0101907 2023-07-31 16:18:26
我有這段代碼:// redacted var (        cidr        net.IPNet           createCmd   = &cobra.Command{            Use:   "create",            Short: "create would create something useful",            Long:  "create submits a request for something useful creation based on parameters provided ",            Run: func(cmd *cobra.Command, args []string) {                //region comes from rootCmd                log.Infof("cidr: %v, ipmask: %v", cidr, cidr.IP.DefaultMask())            },        }    )func init() {    createCmd.Flags().IPNetVar(&cidr, "vpc-cidr", cidr, "Vpc cidr range")}// redacted輸出:./somethinguseful create --cidr 192.168.100.0/24INFO[0000] cidr: {192.168.100.0 ffffff00}, ipmask: ffffff00我無法理解命令行參數(shù) 192.168.100.0/24 在哪個(gè)階段被轉(zhuǎn)換為 net.IP 和掩碼。查看IPNet代碼func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {    *p = val    return (*ipNetValue)(p) }// allocates default to pointer to net.IPNet if provided沒有任何代碼可以將輸入轉(zhuǎn)換為顯示的輸出。如何根據(jù) cidr 塊的輸入計(jì)算并打印掩碼值。請(qǐng)任何指點(diǎn)。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

好吧,這在根上用作標(biāo)志,而標(biāo)志需要flag.Value接口。該接口所需要的只是它是 aStringer并且它實(shí)現(xiàn)了Set(string) error。

ipNetValue正是這樣做的

func (ipnet ipNetValue) String() string {

? ? n := net.IPNet(ipnet)

? ? return n.String()

}


func (ipnet *ipNetValue) Set(value string) error {

? ? _, n, err := net.ParseCIDR(strings.TrimSpace(value))

? ? if err != nil {

? ? ? ? return err

? ? }

? ? *ipnet = ipNetValue(*n)

? ? return nil

}

查看完整回答
反對(duì) 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)