mirror of
https://github.com/jie65535/DaemonService.git
synced 2024-07-27 19:04:56 +08:00
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
#include "ipsechelper.h"
|
|
#include <QProcess>
|
|
#include <QStringList>
|
|
|
|
void IpsecHelper::addItemToWhitelist(QString ip, int port)
|
|
{
|
|
ExeCmd("add", "whitelist", ip, port);
|
|
}
|
|
|
|
void IpsecHelper::removeItemFromWhiteList(QString ip, int port)
|
|
{
|
|
ExeCmd("delete", "whitelist", ip, port);
|
|
}
|
|
|
|
void IpsecHelper::addItemToBlackList(QString ip, int port)
|
|
{
|
|
ExeCmd("add", "blacklist", ip, port);
|
|
}
|
|
void IpsecHelper::addItemToBlackList(QString ip)
|
|
{
|
|
ExeCmd("add", "blacklist", ip);
|
|
}
|
|
void IpsecHelper::removeItemFromBlackList(QString ip, int port)
|
|
{
|
|
ExeCmd("delete", "blacklist", ip, port);
|
|
}
|
|
void IpsecHelper::removeItemFromBlackList(QString ip)
|
|
{
|
|
ExeCmd("delete", "blacklist", ip);
|
|
}
|
|
void IpsecHelper::addItemToBlackList(int port)
|
|
{
|
|
ExeCmd("add", "blacklist", "any", port);
|
|
}
|
|
|
|
void IpsecHelper::ExeCmd(QString cmd, QString filterlist, QString srcaddr, int port)
|
|
{
|
|
QProcess p(nullptr);
|
|
p.start("netsh",
|
|
QStringList() << "ipsec"
|
|
<< "static"
|
|
<< cmd
|
|
<< "filter"
|
|
<< ("filterlist=" + filterlist)
|
|
<< ("srcaddr=" + srcaddr)
|
|
<< "dstaddr=me"
|
|
<< "protocol=tcp"
|
|
<< "mirrored=yes"
|
|
<< QString("dstport=%1").arg(port)
|
|
);
|
|
p.waitForStarted();
|
|
p.waitForFinished();
|
|
}
|