Cross platform TCP connect port scanner built with Java Swing, styled after a GitHub dark theme layout.
HTONMapper scans a target host across a configurable port range using multi-threaded TCP connect attempts. Results are shown live in a table with response times and resolved service names, alongside a real time percentage progress bar and an activity log.
This tool performs TCP connect scanning through the standard Java Socket API. It does not use raw sockets or packet crafting, so it runs identically on Windows and Linux without elevated privileges.
- Multi-threaded TCP connect scanning with configurable thread count and timeout
- Live results table with port, status, resolved service name, and response time
- Percentage based progress bar updated per completed port
- Activity log with timestamps
- Service name resolution for around 100 common ports
- JDK 8 or newer (a full JDK, not just a JRE, since
javacis required to build) - Windows or Linux desktop environment capable of running Swing applications
Run the build script from the project root:
./build.shbuild.sh performs these steps:
- Checks that
javaandjavacare available inPATH - Cleans and recreates the
out/output directory - Collects all
.javasource files undersrc/java - Compiles the sources into
out/ - Verifies that the compiled entry point class exists
Each step prints a colored status line in the format:
[LEVEL] progress N/5 message
INFO is cyan, WARN is blue, ERROR is red, and the brackets plus message text stay white.
Run the run script from the project root:
./run.shrun.sh performs these steps:
- Checks that
javais available inPATH - Checks for an existing build in
out/, runningbuild.shautomatically if missing - Prepares the launch environment
- Launches
com.htonmapper.Mainthrough the JVM
Each step prints a colored status line in the same [LEVEL] progress N/4 message format used by build.sh.
If you prefer not to use the scripts:
cd src/java
javac -d ../../out com/htonmapper/Main.java com/htonmapper/core/*.java com/htonmapper/gui/*.java
cd ../../out
java com.htonmapper.Main- Target Host accepts an IP address or a resolvable hostname
- Start Port and End Port define the inclusive scan range, from 1 to 65535
- Timeout controls how long, in milliseconds, a connection attempt waits before being treated as closed or filtered
- Thread Count controls how many concurrent connection attempts run at once, higher values scan faster but increase local resource usage and network noise
Only scan hosts and networks you own or are explicitly authorized to test. Unauthorized port scanning may violate laws or terms of service depending on your jurisdiction and the target network's policies.
Caution
This tool is currently under development, in some release versions, you may encounter functional errors or logic flaws.