curl 访问 IPv6 url

一,设置服务端

func ipv6_test(w http.ResponseWriter, r *http.Request) {

    w.Write([]byte("jsf ipv6"))

    return

}

func main() {

    err := http.ListenAndServe("[fe80::266e:96ff:fe12:c8a4%eth4]:1817", http.HandlerFunc(ipv6_test))

    if err != nil {

        fmt.Println(err)

    }

    for {

    }

}

二,客户端访问

curl  -g -d -k -v --interface [本机ipv6地址] https://[目标ipv6地址]:端口号/123.html 

ipv6 的 url 中 使用 "[" 和 "]" 将 ipv6 的地址括起来;
使用 -g 选项,使 curl 使用正确的对 url 中的 "[" 和 "]" 字符的处理方式,必须携带该选项;
如果使用域名而非 ipv6地址访问,且 dns 解析出来的是 ipv6 地址时,同样需要使用这些选项;
--interface 后面需要指定 正确的可以访问到目标 ipv6 地址的本机的 ipv6 地址,同样需要使用 "[" "]" 将其括起来,此选项根据实际情况选用,可以省略;
-k 是针对ssl的,根据实际情况自行选择;
-v 是查看具体请求与返回信息;
关于 -6,该选项是指示 curl 将目标域名仅解析为 ipv6 地址.
 

示例:

curl -6 --interface eth4 "http://[fe80::266e:96ff:fe12:c8a4]:1817/" -g

curl --interface eth4 "http://[fe80::266e:96ff:fe12:c8a4]:1817/"

你可能感兴趣的:(编程语言,服务器,golang,IPv6)