我有一个依赖IPV4地址的应用程序。最近,一些请求在调用request.remote_addr时返回了IPV6地址,这正在打破应用程序。
有没有办法强制和App Engine(标准,Python)应用程序只返回远程IP的IPV4地址?或者是否有任何功能来映射"或"项目" IPV6到IPV4?我知道这是不同的,第一个可能有更多的组合,没有办法1-1转换。
我的应用案例:我们在连接到WAN的同一路由器下有多个用户(公共IP,由request.remote_addr属性返回)。我需要能够检查用户请求是否在同一个WAN IP地址,我将处理它。如果用户在局域网外(从他的手机或家中)发出请求,如果服务器检测到远程IP不同,我将阻止该请求。
我不确定在连接到WAN的同一路由器下具有不同本地IP地址的两个用户是否将返回相同的IPV6 WAN地址...如果LAN下的任何用户的IPV6 WAN地址相同,则应用程序可以工作没有麻烦。或者,如果我们能够检测到两个IPV6地址是否在同一个LAN上并且具有相同的WAN访问权限,那么这也可以起作用。
我们使用其他安全和身份验证技术,这只是对一个非常复杂的应用程序的简短而简单的描述,而这个新功能并不一定非常完美。
答案 0 :(得分:2)
首先,您确实需要确保您的应用程序适用于IPv6;改变是IPv6不是随机的,这是必要的。如果您没有考虑IPv6地址,那么您的应用程序将无法与所有人合作(并且您赢得的客户百分比将随着时间的推移而增加)。
如果您想检查IPv6地址是否与另一个子网在同一子网上,this question可能会帮助您解决问题。