我们可以find一个主机可以传输的数据包序列,以确定它是否位于NAT盒子后面?
我的意思是,没有像STUN这样的特殊服务器支持。
那么,如果你的接口有一个RFC 1918专用地址,但你仍然可以访问普通的Internet主机,那么你的主机就在某个地方。 🙂
否则,除非另一端点(称为B)有意(或不包括)引用其对等体的IP(称为A),否则不存在。 上面提到的另一个要求是B点不能使用NAT本身。
简而言之,你需要标准/非标准的服务器(例如STUN或“自制的”)或通信抽象中的泄漏的帮助,后者应该被认为是devise上的缺陷,并被认为是不可靠的(某些时候,可能修复它 )。
显然它可以使用IP数据包中的TTL字段完成: http : //www.sflow.org/detectNAT/ 。
我不认为这是可能的。 据我所知,没有真正的方法来判断NAT是否被使用。