背景:我正在开发一个使用 UDP 的打洞服务,为了区分同一公共 IP 下的用户,我想让用户也发送他们的本地 IP。这样,我一石二鸟:客户端被唯一标识,同时还让服务器为用户提供建立直接连接(如果可能),而不是将其发夹。
一切似乎都很完美(特别是唯一的标识),直到我意识到这是可能的:
所以真正的问题是:这种情况有多普遍?如果它们确实发生的话?在哪里发生?
答案1
这种情况在中国等国家很常见,其他国家的小型 ISP(尤其是 wifi ISP)也经常出现这种情况。他们获得相对较小范围的 IP,然后为其用户进行大规模 NAT。
当然,大多数用户都会购买便宜的 SOHO 路由器,并且内部 NAT 的范围为 192.168.1.0/24。
答案2
我见过类似的设置,当用户用完 ISP 提供的 4 端口路由器上的端口时,其中 2 个端口已经用于电视,他们只需插入一个便宜的 soho 即可连接楼上的有线 PC。所以我认为这种情况并不罕见
答案3
如果我理解正确的话,您希望使用公共 IP 地址和客户端的本地 IP 地址的组合来生成唯一的客户端标识符。但这种组合不能保证是唯一的。
您应该考虑使用公共 IP 地址和连接端口号。这将唯一地标识客户端。