ping-proxy is a small Go service that exposes ICMP ping checks over HTTP or HTTPS for literal IPv4 and IPv6 addresses.
For the full product and implementation contract, see SPEC.md.
The service requires Basic Auth credentials at startup.
export PING_PROXY_BASIC_AUTH_USERNAME=ping
export PING_PROXY_BASIC_AUTH_PASSWORD=change-me
go run ./cmd/ping-proxyBy default, plain HTTP listens on port 8080. When TLS is enabled, HTTPS listens on port 8443.
When running in a container, ICMP probing typically requires NET_RAW:
docker run --rm --cap-add=NET_RAW \
-e PING_PROXY_BASIC_AUTH_USERNAME=ping \
-e PING_PROXY_BASIC_AUTH_PASSWORD=change-me \
-p 8080:8080 ping-proxycurl -u ping:change-me \
-H 'Content-Type: application/json' \
-d '{
"targets": ["8.8.8.8", "2001:4860:4860::8888"],
"retries": 2
}' \
http://localhost:8080/ping{
"results": [
{
"target": "8.8.8.8",
"reachable": true
},
{
"target": "2001:4860:4860::8888",
"reachable": false
}
]
}Compact responses are returned by default. Set "compact": false in the request body when full per-target probe details are needed.