add altnames for options

This commit is contained in:
Nils 2022-01-02 00:52:03 +01:00
parent cd12cab2d0
commit d3df87b266
Signed by: byreqz
GPG Key ID: 396A62D7D436749E
2 changed files with 57 additions and 38 deletions

View File

@ -1,10 +1,20 @@
# probehost2 # probehost2
an http endpoint to query network diagnosis tools from remote hosts an http endpoint to query network diagnosis tools from remote hosts
1. Overview - <a href="#probehost2">Overview</a>
2. Disclaimer - <a href="#disclaimer">Disclaimer</a>
3. Installation - <a href="#installation">Installation</a>
4. Usage - <a href="#building">Building</a>
- <a href="#systemd">Systemd</a>
- <a href="#docker">Docker</a>
- <a href="#proxy">Proxy</a>
- <a href="#usage">Usage</a>
- <a href="#server">Server</a>
- <a href="#client">Client</a>
- <a href="#general">General</a>
- <a href="#ping">Ping</a>
- <a href="#mtr">MTR</a>
- <a href="#traceroute">Traceroute</a>
# Disclaimer # Disclaimer
Dont expect good or even mediocre code here. This is my first take at go and is mostly for myself to learn. Suggestions and improvements are welcome. Dont expect good or even mediocre code here. This is my first take at go and is mostly for myself to learn. Suggestions and improvements are welcome.
@ -69,21 +79,21 @@ All inputs are validated and invalid input is discarded. If the request contains
Local IP ranges are by default excluded from lookups, this currently only includes IPs and not hostnames and can be disabled on the server by passing the -l flag. Local IP ranges are by default excluded from lookups, this currently only includes IPs and not hostnames and can be disabled on the server by passing the -l flag.
Command options are based on the originally given cli flags but also have a more understandable altname (wip). Command options are based on the originally given cli flags but also have a more understandable altname.
### Ping ### Ping
The default options are: The default options are:
- `-c 10`: send 10 pings - `-c 10`: send 10 pings
Available options are: Available options are:
- `4`: force IPv4 - `4` / `force4`: force IPv4
- `6`: force IPv6 - `6` / `force6`: force IPv6
- `d`: print timestamps - `d` / `timestamps`: print timestamps
- `n`: no dns name resolution - `n` / `nodns`: no dns name resolution
- `v`: verbose output - `v` / `verbose`: verbose output
- `c1`: send 1 ping - `c1` / `count1`: send 1 ping
- `c5`: send 5 pings - `c5` / `count5`: send 5 pings
- `c10`: send 10 pings - `c10` / `count10`: send 10 pings
Example query: Example query:
```sh ```sh
@ -103,18 +113,18 @@ The default options are:
- `-c10`: send 10 pings - `-c10`: send 10 pings
Available options are: Available options are:
- `4`: force IPv4 - `4` / `force4`: force IPv4
- `6`: force IPv6 - `6` / `force6`: force IPv6
- `u`: use UDP instead of ICMP echo - `u` / `udp`: use UDP instead of ICMP echo
- `t`: use TCP instead of ICMP echo - `t` / `tcp`: use TCP instead of ICMP echo
- `e`: display information from ICMP extensions - `e` / `ext`: display information from ICMP extensions
- `x`: output xml - `x` / `xml`: output xml
- `n`: do not resolve host names - `n` / `nodns`: do not resolve host names
- `b`: show IP numbers and host names - `b` / `cmb`: show IP numbers and host names
- `z`: display AS number - `z` / `asn`: display AS number
- `c1`: send 1 ping - `c1` / `count1`: send 1 ping
- `c5`: send 5 pings - `c5` / `count5`: send 5 pings
- `c10`: send 10 pings - `c10` / `count10`: send 10 pings
Example query: Example query:
``` ```
@ -129,16 +139,16 @@ The default options are:
- none - none
Available options are: Available options are:
- `4`: force IPv4 - `4` / `force4`: force IPv4
- `6`: force IPv6 - `6` / `force6`: force IPv6
- `f`: do not fragment packets - `f` / `dnf`: do not fragment packets
- `i`: use ICMP ECHO for tracerouting - `i` / `ìcmp`: use ICMP ECHO for tracerouting
- `t`: use TCP SYN for tracerouting (default port is 80) - `t` / `tcp`: use TCP SYN for tracerouting (default port is 80)
- `n`: do not resolve IP addresses to their domain names - `n` / `nodns`: do not resolve IP addresses to their domain names
- `u`: use UDP to particular port for tracerouting (default port is 53) - `u` / `udp`: use UDP to particular port for tracerouting (default port is 53)
- `ul`: Use UDPLITE for tracerouting (default port is 53) - `ul` / `udplite`: Use UDPLITE for tracerouting (default port is 53)
- `d`: Use DCCP Request for tracerouting (default port is 33434) - `d` / `dccp`: Use DCCP Request for tracerouting (default port is 33434)
- `b`: Guess the number of hops in the backward path and print if it differs - `b` / `back`: Guess the number of hops in the backward path and print if it differs
Example query: Example query:
``` ```

15
main.go
View File

@ -119,7 +119,10 @@ func prerunner(req *http.Request, cmd string, cmdopts map[string]string, default
func ping(w http.ResponseWriter, req *http.Request) { func ping(w http.ResponseWriter, req *http.Request) {
cmd := "ping" cmd := "ping"
cmdopts := map[string]string{"4": "-4", "6": "-6", "d": "-D", "n": "-n", "v": "-v", "c1": "-c1", "c5": "-c5", "c10": "-c10"} cmdopts := map[string]string{
"4": "-4", "6": "-6", "d": "-D", "n": "-n", "v": "-v", "c1": "-c1", "c5": "-c5", "c10": "-c10",
"force4": "-4", "force6": "-6", "timestamps": "-D", "nodns": "-n", "verbose": "-v", "count1": "-c1", "count5": "-c5", "count10": "-c10",
}
var defaultopts []string var defaultopts []string
defaultopts = append(defaultopts, "-c10") defaultopts = append(defaultopts, "-c10")
res := prerunner(req, cmd, cmdopts, defaultopts) res := prerunner(req, cmd, cmdopts, defaultopts)
@ -132,7 +135,10 @@ func ping(w http.ResponseWriter, req *http.Request) {
func mtr(w http.ResponseWriter, req *http.Request) { func mtr(w http.ResponseWriter, req *http.Request) {
cmd := "mtr" cmd := "mtr"
cmdopts := map[string]string{"4": "-4", "6": "-6", "u": "-u", "t": "-T", "e": "-e", "x": "-x", "n": "-n", "b": "-b", "z": "-z", "c1": "-c1", "c5": "-c5", "c10": "-c10"} cmdopts := map[string]string{
"4": "-4", "6": "-6", "u": "-u", "t": "-T", "e": "-e", "x": "-x", "n": "-n", "b": "-b", "z": "-z", "c1": "-c1", "c5": "-c5", "c10": "-c10",
"force4": "-4", "force6": "-6", "udp": "-u", "tcp": "-T", "ext": "-e", "xml": "-x", "nodns": "-n", "cmb": "-b", "asn": "-z", "count1": "-c1", "count5": "-c5", "count10": "-c10",
}
var defaultopts []string var defaultopts []string
defaultopts = append(defaultopts, "-r", "-w", "-c10") defaultopts = append(defaultopts, "-r", "-w", "-c10")
res := prerunner(req, cmd, cmdopts, defaultopts) res := prerunner(req, cmd, cmdopts, defaultopts)
@ -145,7 +151,10 @@ func mtr(w http.ResponseWriter, req *http.Request) {
func traceroute(w http.ResponseWriter, req *http.Request) { func traceroute(w http.ResponseWriter, req *http.Request) {
cmd := "traceroute" cmd := "traceroute"
cmdopts := map[string]string{"4": "-4", "6": "-6", "dnf": "-F", "i": "-I", "t": "-T", "n": "-n", "u": "-U", "ul": "-UL", "d": "-D", "b": "--back"} cmdopts := map[string]string{
"4": "-4", "6": "-6", "f": "-F", "i": "-I", "t": "-T", "n": "-n", "u": "-U", "ul": "-UL", "d": "-D", "b": "--back",
"force4": "-4", "force6": "-6", "dnf": "-F", "icmp": "-I", "tcp": "-T", "nodns": "-n", "udp": "-U", "udplite": "-UL", "dccp": "-D", "back": "--back",
}
var defaultopts []string var defaultopts []string
//defaultopts = append(defaultopts) // no default options for traceroute //defaultopts = append(defaultopts) // no default options for traceroute
res := prerunner(req, cmd, cmdopts, defaultopts) res := prerunner(req, cmd, cmdopts, defaultopts)