feat(packet-sniffer): add CLI options for IP filtering and masking

This commit is contained in:
Ваше Имя
2025-10-08 18:27:02 +04:00
parent 8016d570b8
commit 5ac2995b2d
2 changed files with 49 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
#include "packet_sniffer_cli.hpp"
#include <boost/program_options/value_semantic.hpp>
PacketSnifferCli::PacketSnifferCli()
: CliBase("Packet Sniffer Options")
, ip_("")
{
}
void PacketSnifferCli::setupOptions()
{
// clang-format off
desc_.add_options()
("help,h", "Show help")
("ip,H", withDefault(ip_, "<IP>"), "Local IPv4 to sniff (e.g. 192.168.1.42)")
("mask,m", boost::program_options::value<bool>()->default_value(false)->implicit_value(true),
"Mask IP addresses in output (demo)");
// clang-format on
}
std::string PacketSnifferCli::getIp() const
{
return vm_.at("ip").as<std::string>();
}
bool PacketSnifferCli::isMaskEnabled() const
{
const auto it = vm_.find("mask");
return (it != vm_.end()) ? it->second.as<bool>() : false;
}
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "cli_base.hpp"
#include "option_utils.hpp"
#include <string>
class PacketSnifferCli : public CliBase, protected OptionUtils
{
public:
PacketSnifferCli();
std::string getIp() const;
bool isMaskEnabled() const;
protected:
void setupOptions() override;
private:
std::string ip_;
};