2022-08-29 12:21:09 +04:30
|
|
|
#ifndef UTILITIES_H
|
|
|
|
|
#define UTILITIES_H
|
2020-12-26 15:03:51 +03:00
|
|
|
|
2021-02-25 18:03:24 +03:00
|
|
|
#include <QRegExp>
|
2020-12-26 15:03:51 +03:00
|
|
|
#include <QString>
|
2022-08-29 12:21:09 +04:30
|
|
|
#include <QRegularExpression>
|
2020-12-26 15:03:51 +03:00
|
|
|
|
2021-03-18 18:45:08 +03:00
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
|
#include "Windows.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
2022-08-29 12:21:09 +04:30
|
|
|
class Utils : public QObject {
|
|
|
|
|
Q_OBJECT
|
2020-12-26 15:03:51 +03:00
|
|
|
|
|
|
|
|
public:
|
2021-04-04 23:12:36 +03:00
|
|
|
static QString getRandomString(int len);
|
|
|
|
|
|
2020-12-26 15:03:51 +03:00
|
|
|
static QString executable(const QString& baseName, bool absPath);
|
2021-08-04 10:08:00 -07:00
|
|
|
static QString usrExecutable(const QString& baseName);
|
2020-12-26 15:03:51 +03:00
|
|
|
static QString systemLogPath();
|
|
|
|
|
static bool createEmptyFile(const QString& path);
|
2020-12-26 23:17:20 +03:00
|
|
|
static bool initializePath(const QString& path);
|
2021-01-26 15:01:15 +03:00
|
|
|
|
|
|
|
|
static QString getIPAddress(const QString& host);
|
|
|
|
|
static QString getStringBetween(const QString& s, const QString& a, const QString& b);
|
2021-06-05 20:55:57 +03:00
|
|
|
static bool checkIPv4Format(const QString& ip);
|
2021-05-27 22:18:36 +03:00
|
|
|
static bool checkIpSubnetFormat(const QString& ip);
|
2022-08-29 12:21:09 +04:30
|
|
|
static QRegularExpression ipAddressRegExp() { return QRegularExpression("^((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])(\\.(?!$)|$)){4}$"); }
|
|
|
|
|
static QRegularExpression ipAddressPortRegExp() { return QRegularExpression("^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}"
|
2021-03-17 03:45:38 +03:00
|
|
|
"(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\\:[0-9]{1,5}){0,1}$"); }
|
2021-03-18 18:45:08 +03:00
|
|
|
|
2021-05-27 22:18:36 +03:00
|
|
|
static QRegExp ipAddressWithSubnetRegExp() { return QRegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}"
|
|
|
|
|
"(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(\\/[0-9]{1,2}){0,1}"); }
|
|
|
|
|
|
2021-05-07 23:28:37 +03:00
|
|
|
static QRegExp ipNetwork24RegExp() { return QRegExp("^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}"
|
|
|
|
|
"0$"); }
|
|
|
|
|
|
2021-05-10 02:33:31 +03:00
|
|
|
static QRegExp ipPortRegExp() { return QRegExp("^()([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5])$"); }
|
|
|
|
|
|
2022-01-23 19:16:40 +03:00
|
|
|
static QRegExp domainRegExp() { return QRegExp("(((?!\\-))(xn\\-\\-)?[a-z0-9\\-_]{0,61}[a-z0-9]{1,1}\\.)*(xn\\-\\-)?([a-z0-9\\-]{1,61}|[a-z0-9\\-]{1,30})\\.[a-z]{2,}"); }
|
2021-03-18 18:45:08 +03:00
|
|
|
static bool processIsRunning(const QString& fileName);
|
|
|
|
|
static void killProcessByName(const QString &name);
|
|
|
|
|
|
2021-05-27 22:18:36 +03:00
|
|
|
static QString netMaskFromIpWithSubnet(const QString ip);
|
|
|
|
|
static QString ipAddressFromIpWithSubnet(const QString ip);
|
|
|
|
|
|
2021-06-01 18:18:09 +03:00
|
|
|
static QStringList summarizeRoutes(const QStringList &ips, const QString cidr);
|
|
|
|
|
|
2022-08-10 22:15:00 +03:00
|
|
|
static QString openVpnExecPath();
|
|
|
|
|
static QString wireguardExecPath();
|
|
|
|
|
static QString certUtilPath();
|
|
|
|
|
|
|
|
|
|
|
2021-03-18 18:45:08 +03:00
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
|
static bool signalCtrl(DWORD dwProcessId, DWORD dwCtrlEvent);
|
|
|
|
|
#endif
|
2020-12-26 15:03:51 +03:00
|
|
|
};
|
|
|
|
|
|
2022-08-29 12:21:09 +04:30
|
|
|
#endif // UTILITIES_H
|