Interlace
Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.

Install
git clone https://github.com/codingo/Interlace.git
python3 setup.py install
Usage
| ARGUMENT | DESCRIPTION |
|---|---|
| (stdin) | Pipe target lists from another application in comma-delimited format, CIDR notation, or as an individual host |
| -t | Specify a target or domain name either in comma-delimited format, CIDR notation, or as an individual host |
| -tL | Specify a list of targets or domain names |
| -e | Specify a target exclusion either in comma-delimited format, CIDR notation, or as an individual host |
| -eL | Specify a list of targets to exclude |
| -threads | Specify the maximum number of threads to run at any one time (DEFAULT:5) |
| -timeout | Specify a timeout value in seconds for any single thread (DEFAULT:600) |
| -c | Specify a single command to execute over each target or domain |
| -cL | Specify a list of commands to execute over each target or domain |
| -o | Specify an output folder variable that can be used in commands as _output_ |
| -p | Specify a list of port variable that can be used in commands as _port_. This can be a single port, a comma delimited list, or use dash notation |
| -rp | Specify a real port variable that can be used in commands as _realport_ |
| -no-cidr | If set then CIDR notation in a target file will not be automatically be expanded into individual hosts |
| -no-color | If set then any foreground or background colours will be stripped out |
| -silent | If set then only important information will be displayed and banners and other information will be redacted |
| -v | If set then verbose output will be displayed in the terminal |
Further information regarding ports (-p)
| EXAMPLE | NOTATION TYPE |
|---|---|
| 80 | Single port |
| 1-80 | Dash notation, perform a command for each port from 1-80 |
| 80,443 | Perform a command for both port 80, and port 443 |
Further information regarding targets (-t or -tL)
Both -t and -tL will be processed the same. You can pass targets the same as you would when using nmap. This can be done using CIDR notation, dash notation, or a comma-delimited list of targets. A single target list file can also use different notation types per line.
Alternatively, you can pass targets in via stdin and neither -t or -tL will be required.
Variable Replacements
The following variables will be replaced in commands at runtime:
| VARIABLE | REPLACEMENT |
|---|---|
| _target_ | Replaced with the expanded target list that the current thread is running against |
| _host_ | Works the same as _target_, can be used interchangeably |
| _output_ | Replaced with the output folder variable from interlace |
| _port_ | Replaced with the expanded port variable from interlace |
| _realport_ | Replaced with the real port variable from interlace |
Tutorial
![]()