Golang 网络编程丝绸之路 - TCPUDP 地址解析

Python015

Golang 网络编程丝绸之路 - TCPUDP 地址解析,第1张

TLDR 在使用 Golang 编写 TCP/UDP socket 的时候,第一步做的就是地址解析。

该函数返回的地址包含的信息如下:

TCPAddr 里, IP 既可以是 IPv4 地址,也可以是 IPv6 地址。 Port 就是端口了。 Zone 是 IPv6 本地地址所在的区域。

从返回结果看该函数的参数, network 指 address 的网络类型; address 指要解析的地址,会从中解析出我们想要的 IP , Port 和 Zone 。

从源码中可以看出,参数 network 只能是如下四个值,否则会得到一个错误。

解析过程跟 ResolveTCPAddr 的一样,不过得到的是 *UDPAddr 。

UDPAddr 包含的信息如下:

这就带来一个现实问题,想要直连,必须得获得IPv6地址,但是想要获得新的IPv6地址,必须要先连上家中NAS,而处于外网时段,又因为没有新地址无法连接,处于内网时段又完全没必要。

这种方法简单明了,这里分享给大家。

想要实现动态域名解析,首先要拥有一个自己的域名。什么叫域名?其实就是我们平时在浏览器地址栏输入的网址,比如www.smzdm.com ,就是域名,而IP地址才是真正的指向服务器的地址,域名和地址的关联就是域名解析。我们已经拥有不固定的IPv6的公网地址了,现在需要一个固定的域名,然后随时更新,将新的IPv6公网地址关联到固定的域名下,这就是ddns-go的作用了。