我正在创建一个网站,并且正在尝试实现一项防止多重投票的功能。目前,我实现它的方式似乎在一定程度上可行,但是似乎用户IPv6 IP地址每天都在变化,从而允许每个用户在另一天进行另一次投票。
这是我当前记录IP的方式
这就是我在PHP中获取用户IP的方式。
getChartData
这是我在数据库中记录每次投票的方式
getChartData() {
axios.get('https://cors-anywhere.herokuapp.com/https://api.myjson.com/bins/zfpa2')
.then(({ data }) => {
const labels = [];
const dataArray = [];
data.forEach(packet => {
labels.push(this.getFormatDate(new Date(packet.updated)));
dataArray.push(parseFloat(packet.users));
});
this.setState({ data : dataArray, labels })
})
.catch(error => {
console.log(error);
})
}
是否只有一种方法可以跟踪IPv4 IP,因为这些似乎没有变化。谢谢你。
答案 0 :(得分:0)
如果您愿意在组合中添加一些javascript,请考虑在您网站的前端添加一些可识别客户端指纹的代码。将其与请求一起发送,如果要处理IPv6,请依靠指纹。
This question有多个出色的答案,详细说明了如何实现。
它仍然不是万无一失的证据,但是遇到既具有IPv6又具有足够智能以规避客户端选择的唯一标识方法的用户的可能性可能很小,在您的情况下是可以接受的。