feat(packet-sniffer): add CLI options for IP filtering and masking
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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_;
|
||||
};
|
||||
Reference in New Issue
Block a user