IPMapper
IPMapper is an Elixir-based tool that generates incremental IP addresses, performs non-blocking HTTP requests using Mint, and does reverse DNS lookups. It logs the results (including timestamp, IP, DNS name, HTTP status, and a hex color) to a CSV file while providing real-time progress updates.
Features
- Incremental IP Generation: Start from a given IP and generate sequential IP addresses.
- Non-blocking HTTP Requests: Uses Mint to perform HTTP GET requests concurrently.
- Reverse DNS Lookups: Retrieves DNS names for IP addresses.
- CSV Logging: Logs results with timestamps and hex color codes.
- Progress Tracking: Displays processed count, remaining count, and ETA.
- System Limits Logging: Logs open file descriptor limits at startup.
Installation
Clone the repository:
git clone https://github.com/evokelektrique/internet_mapper.git cd ip_mapperFetch dependencies:
mix deps.getCompile the project:
mix compile
Usage
Start an interactive shell with:
iex -S mix
Then run the pipeline (for example, to generate 100 sequential IPs starting at 1.0.0.0 with 50 consumers):
IPMapper.start("1.0.0.0", 100, 50)
Progress will be printed to the console and results logged to results.csv.
Running Tests
To run the test suite:
mix testLicense
This project is licensed under the MIT License.