一个关于IP地址、ICMP、NAT、Scoket的问题。一直想不明白。分不够可以另外开帖子。
有一台处于NAT1后的机器A,想知道NAT1的服务器的公网地址。能否通过向网络上的某台机器发送一个需要回送类型的ICMP包,然后根据回送的信息中的IP首部中的目标地址来得到NAT1服务器的公网地址?
看资料上是这样说的:
回送或回送响应消息
回送消息的源地址是回送响应消息的目的地址。若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。
如何将源和目的地址交换?是系统内核完成这个工作吗?另外。从A机器经过NAT1的服务器发给机器B的ICMP包中,源地址是NAT1服务器的地址吗?B机器的回送信息的目标地址是NAT1服务器的地址吗?还是在两台机器中要经过的一个路由器的地址呢?