From 7af9a49eef67b7fa0b399e6a6a53faf3eb6e1350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Wed, 8 Oct 2025 18:30:12 +0400 Subject: [PATCH] feat(packet_sniffer): replace port scanner with packet sniffer --- src/main.cpp | 50 +++++++++++++++++++------------------------------- xmake.lua | 6 ++++-- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 5189aec..04f5643 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,38 +1,26 @@ -#include "cli_base.hpp" #include "logger.hpp" -#include "port_scanner.hpp" -#include "portscan_cli.hpp" +#include "packet_sniffer_cli.hpp" +#include "sniffer.hpp" +#include -#include -#include - -static std::vector allPorts() -{ - std::vector v; - v.reserve(65535); - for (uint32_t p = 1; p <= 65535; ++p) { - v.push_back(static_cast(p)); - } - return v; -} - -int main(int argc, char **argv) +int main(int argc, char *argv[]) { Logger::init(true); + try { + PacketSnifferCli cli; + cli.parse(argc, argv); + if (cli.isHelp()) { + cli.printHelp(); + return 0; + } - PortScanCli cli; - cli.parse(argc, argv); - if (cli.isHelp()) { - cli.printHelp(); - return 0; + Sniffer sniffer(cli.getIp(), cli.isMaskEnabled()); + return sniffer.run(); + } catch (const std::exception &ex) { + Logger::fatal(ex.what()); + return 1; + } catch (...) { + Logger::fatal("unknown error"); + return 1; } - - const std::string ip = cli.getIp(); - auto ports = allPorts(); - - Logger::info("Starting full port scan (1..65535)..."); - PortScanner scanner(ip, ports); - scanner.run(); - Logger::info("Scan completed."); - return 0; } diff --git a/xmake.lua b/xmake.lua index 2a474e2..ef43658 100644 --- a/xmake.lua +++ b/xmake.lua @@ -10,10 +10,12 @@ add_requires("cmake::Boost", { }, }) -target "port_scanner" +add_requires("cmake::libtins", { alias = "libtins", system = true }) + +target "packet_sniffer" do set_kind "binary" add_files("src/main.cpp", "src/cli/*.cpp", "src/common/*.cpp", "src/core/*.cpp") add_includedirs("src", "src/cli", "src/common", "src/core", { public = true }) - add_packages "boost" + add_packages("boost", "libtins") end