A comprehensive Domain/IP Investigation Tool built with C++ for Linux/WSL and C# Windows Forms for Windows, allowing users to perform network reconnaissance, DNS lookups, WHOIS queries, traceroutes, and save results in JSON format.
- Domain and IP resolution
- NSLookup
- Ping test
- WHOIS information
- JSON report generation
- Traceroute (Linux version)
- Service scan (limited)
- Uses system commands:
nslookup,ping,whois,traceroute - Optional colorized output for terminal
- Saves output to
report.json - Robust error handling
- Compatible with WSL / GCC / g++
- Supports both domain names and IP addresses
- Uses
libcurlandOpenSSLfor network requests
- Full GUI application with text input and result display
- Requires .NET Framework 4.8 or newer
- JSON output saved as
report.json - Resolves IPs using
Dns.GetHostAddresses() - Runs
nslookup,ping, andwhoisviacmd.exe - Modern UI layout with scrollable result box
- Fully functional
scanbutton - Includes error handling and validation
- GCC / g++
libcurl(network requests)OpenSSL(-lssl -lcrypto)- System commands:
nslookup,ping,whois,traceroute
Compile:
g++ domain_report.cpp -o domain_report -lcurl -lssl -lcryptoRun:
./domain_report- Visual Studio 2022 (or newer)
- .NET Framework 4.8+
- NuGet Package:
Newtonsoft.Json(for JSON handling)
Add Newtonsoft.Json via NuGet:
Install-Package Newtonsoft.JsonBuild & Run:
- Open solution in Visual Studio
- Build project
- Run
Form1(main form) - Enter domain/IP and click Scan
- Results shown in the GUI and saved as
report.json
JSON Example:
{
"Target": "dns.google",
"ResolvedIP": "8.8.8.8",
"NSLookup": "...nslookup output...",
"Ping": "...ping output...",
"Whois": "...whois output...",
"Timestamp": "2025-12-10 20:00:00"
}Terminal/GUI Output Example:
TARGET: dns.google
IP: 8.8.8.8
---- NSLOOKUP ----
...
---- WHOIS ----
...
---- PING ----
...
Saved: report.json
-
Form1 Not Found (Windows)
- Ensure file names:
Form1.csandForm1.Designer.cs - Class definition:
public partial class Form1 : Form - All files share the same namespace (e.g.,
DomainTool)
- Ensure file names:
-
Newtonsoft / JObject Missing
- Install via NuGet:
Install-Package Newtonsoft.Json - Add
using Newtonsoft.Json.Linq;to your files
- Install via NuGet:
-
Linux C++ Warnings
- Use
unique_ptrcorrectly forpopen/pclose - Use
-Wno-ignored-attributesto suppress template warnings
- Use
-
JSON errors / null strings
- Validate system command output
- Handle exceptions when converting to string
- Add full traceroute visualization in GUI
- Add DNS records parsing with color-coded output
- Include service scan results in Windows version
- Implement multi-threaded lookups for faster results
- Add custom themes to Windows Forms GUI
C++ Version (Linux/WSL)
│ domain_report.cpp
│ report.json
│
Windows Version (C#)
│ DomainTool.sln
│ Form1.cs
│ Form1.Designer.cs
│ Program.cs
│ report.json