Custom sites reimplemented

This commit is contained in:
pokamest 2021-05-27 22:18:36 +03:00
parent 97e918ae72
commit 6c74f30d79
23 changed files with 833 additions and 312 deletions

View file

@ -146,7 +146,7 @@ bool Utils::checkIPFormat(const QString& ip)
return false;
QStringList list = ip.trimmed().split(".");
foreach(QString it, list) {
for (const QString &it : list) {
if(it.toInt() <= 255 && it.toInt() >= 0)
continue;
return false;
@ -154,6 +154,18 @@ bool Utils::checkIPFormat(const QString& ip)
return true;
}
bool Utils::checkIpSubnetFormat(const QString &ip)
{
if (!ip.contains("/")) return checkIPFormat(ip);
QStringList parts = ip.split("/");
if (parts.size() != 2) return false;
bool ok;
if (parts.at(1).toInt(&ok) <= 32 && ok) return checkIPFormat(parts.at(0));
else return false;
}
void Utils::killProcessByName(const QString &name)
{
qDebug().noquote() << "Kill process" << name;
@ -164,6 +176,28 @@ void Utils::killProcessByName(const QString &name)
#endif
}
QString Utils::netMaskFromIpWithSubnet(const QString ip)
{
if (!ip.contains("/")) return "255.255.255.255";
bool ok;
int prefix = ip.split("/").at(1).toInt(&ok);
if (!ok) return "255.255.255.255";
unsigned long mask = (0xFFFFFFFF << (32 - prefix)) & 0xFFFFFFFF;
return QString("%1.%2.%3.%4")
.arg(mask >> 24)
.arg((mask >> 16) & 0xFF)
.arg((mask >> 8) & 0xFF)
.arg( mask & 0xFF);
}
QString Utils::ipAddressFromIpWithSubnet(const QString ip)
{
return ip.split("/").first();
}
#ifdef Q_OS_WIN
// Inspired from http://stackoverflow.com/a/15281070/1529139
// and http://stackoverflow.com/q/40059902/1529139