-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add documentation and prepare for publishing
- Loading branch information
Showing
3 changed files
with
99 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# rustmap | ||
|
||
Rustmap is a very simple "Nmap-like" program that can scan for hosts and open TCP ports. It is mostly written for educational purposes (I wanted to learn Rust, and learn a bit more about how Nmap works) so it's quite slow and doesn't have many features. | ||
|
||
## Examples | ||
|
||
Check if a single host is up: | ||
|
||
```sh | ||
sudo rustmap 127.0.0.1 | ||
``` | ||
|
||
Scan all TCP ports for a single host: | ||
|
||
```sh | ||
sudo rustmap 127.0.0.1 -p | ||
``` | ||
|
||
Scan all TCP ports for multiple hosts: | ||
|
||
```sh | ||
sudo rustmap 127.0.0.1 ::1 -p | ||
``` | ||
|
||
Scan for specific ports in an address range: | ||
|
||
```sh | ||
sudo rustmap 127.0.0.0/8 -p 22,80,443 | ||
``` | ||
|
||
## Usage | ||
|
||
```sh | ||
rustmap [OPTIONS] <addr-ranges>... | ||
``` | ||
|
||
### Flags | ||
|
||
#### `-h, --help` | ||
|
||
Prints help information | ||
|
||
#### `-V, --version` | ||
|
||
Prints version information | ||
|
||
### Options | ||
|
||
#### `-p, --ports <ports>...` | ||
|
||
Probe ports for each host and optionally specify which ports. | ||
|
||
Ports can be specified as a comma-separated list, or left unspecified to scan all ports. | ||
|
||
#### `-t, --timeout <timeout>` | ||
|
||
Timeout for pinging each host and probing each port. | ||
|
||
Parsing is provided by the [parse_duration](https://crates.io/crates/parse_duration) crate and supports almost any notation. E.g. `1s`, `10 seconds`, `1 hour, 15 minutes, 12 seconds`, `10m32s112ms`. [default: `1s`] | ||
|
||
### Args | ||
|
||
#### `<addr-ranges>...` | ||
|
||
IP addresses to scan. | ||
|
||
Supports IPv4 notation (e.g. `127.0.0.1`), IPv6 notation (e.g. `::1`), IPv4-mapped IPv6 notation (e.g. `::ffff::1.1.1.1`) and CIDR notation (e.g. `192.168.0.0/16`, `fe80::/10`). | ||
|
||
## License | ||
[Apache 2.0](./LICENSE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters