主机地址是网络通信最重要的数据之一,net 包中定义了三种类型的主机地址数据类型:IP、IPMask 和 IPAddr,它们分别用来存储协议相关的网络地址。
IP 地址类型
在 net 包中,IP 地址类型被定义成一个 byte 型数组,即若干个 8 位组,格式如下:
type IP []byte
在 net 包中,有几个函数可以将 IP 地址类型作为函数的返回类型,比如 ParseIP() 函数,该函数原型定义如下:
func ParseIP(s string) IP
ParseIP() 函数的主要作用是分析 IP 地址的合法性,如果是一个合法的 IP 地址,ParseIP() 函数将返回一个 IP 地址对象。如果是一个非法 IP 地址,ParseIP() 函数将返回 nil。
还可以使用 IP 对象的 String() 方法将 IP 地址转换成字符串格式,String() 方法的原型定义如下:
func (ip IP) String() string
如果是 IPv4 地址,String() 方法将返回一个点分十进制格式的 IP 地址,如“192.168.0.1”。如果是 IPv6 地址,String() 方法将返回使用“:”分隔的地址形式,如“2000:0:0:0:0:0:0:1”。另外注意一个特例,对于地址“0:0:0:0:0:0:0:1”的返回结果是省略格式“::1”。
【示例 1】IP 地址类型。
import(
"fmt"
"net"
"os"
)
func mai