A high-performance, multithreaded TCP port scanner for Linux.
---------------------1- cMake 2- g++ 2- git
- Open ports and service names
- Custom port range scanning
- Full port range scanning
- Json and text export format
Unlike traditional scanners that wait (block) for each connection to time out, xpscan utilizes:
O_NONBLOCK: Sockets are set to non-blocking mode immediately after creation.select(): Multiplexing is used to monitor socket writability with a precise 500ms window.- Thread Pooling: A sliding window of threads ensures maximum CPU utilization without hitting OS file descriptor limits.
The tool follows the XDG Base Directory Specification, storing persistent configurations in ~/.config/.xpscan/path.conf.
Install xpscan using curl
bash <(curl -sSL https://raw.githubusercontent.com/Sidatii/xpscan/refs/heads/master/install.sh)Clone the project
git clone https://github.com/Sidatii/xpscanGo to the project directory
cd xpscanMake build directory
mkdir build && cd buildCompile the project
cmake .. makeRun the binary
./xpscanxpscan <IP> [OPTIONS]# No args -> interactive session
xpscan 8.8.8.8
# Full range scan
xpscan 8.8.8.8 --full
# Export result to json/txt
xpscan 8.8.8.8 --full --json
xpscan 8.8.8.8 --full --txt
Dev: C++
Build: cMake, Make


