File indexing completed on 2024-05-05 05:40:32

0001 #include "network/ipbanaccepter.h"
0002 #include <QDebug>
0003 #include <QHostAddress>
0004 
0005 IpBanAccepter::IpBanAccepter() {}
0006 
0007 bool IpBanAccepter::isValid(const QMap<QString, QVariant>& data) const
0008 {
0009     QStringList bannedIp= data["IpBan"].toStringList();
0010     QString currentIp= data["currentIp"].toString();
0011 
0012     QString currentIpV4;
0013     QString currentIpV6;
0014     if(currentIp.count(':') == 8)
0015     {
0016         currentIpV6= currentIp.left(currentIp.lastIndexOf(':'));
0017         currentIpV4= currentIp.mid(currentIp.lastIndexOf(':') + 1);
0018     }
0019 
0020     // Cut current ip
0021     bool result
0022         = ((!bannedIp.contains(currentIp)) && (!bannedIp.contains(currentIpV4)) && (!bannedIp.contains(currentIpV6)));
0023 
0024     // qInfo() << " Ip Ban:" << result << "current IP: " << currentIp;
0025     return result;
0026 }