读取标志参数值 IP 地址

huangapple go评论83阅读模式
英文:

read flag argument value ip address

问题

我正在尝试从参数中读取一个IP地址:

var ipaddress_string string
flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
ipaddress := net.ParseIP(ipaddress_string)
fmt.Println(ipaddress)

执行命令如下:
app -ip=10.0.0.1
或者
app -ip="10.0.0.1"

但是始终输出的是127.0.0.1?

英文:

I am trying to read an ip address from arguments:

var ipaddress_string string
flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
ipaddress := net.ParseIP(ipaddress_string)
fmt.Println(ipaddress)

Executing with:<br>
app -ip=10.0.0.1 <br>
or <br>
app -ip="10.0.0.1"

But 127.0.0.1 always come out?

答案1

得分: 2

根据文档,在将所有标志绑定到变量之后,需要调用flags.Parse()。以下是一个完整可运行的示例:

package main

import (
	"flag"
	"fmt"
	"net"
)

func main() {
	var ipaddress_string string
	flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
	flag.Parse()
	ipaddress := net.ParseIP(ipaddress_string)
	fmt.Println(ipaddress)
}

请注意,这是一个使用Go语言编写的示例代码,用于解析命令行标志并打印IP地址。

英文:

According to the docs, you need to make a call to flags.Parse() after binding all flags to variables. The following is a complete, runnable example:

package main

import (
	&quot;flag&quot;
	&quot;fmt&quot;
	&quot;net&quot;
)

func main() {
	var ipaddress_string string
	flag.StringVar(&amp;ipaddress_string, &quot;ip&quot;, &quot;127.0.0.1&quot;, &quot;an ip string var&quot;)
	flag.Parse()
	ipaddress := net.ParseIP(ipaddress_string)
	fmt.Println(ipaddress)
}

huangapple
  • 本文由 发表于 2015年4月1日 03:38:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/29377095.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定