Categorygithub.com/CHTJonas/concheck
module
1.1.0
Repository: https://github.com/chtjonas/concheck.git
Documentation: pkg.go.dev

# README

Concheck

Here lies the code for a teeny tiny go application to test your internet connectivity. It tries to ping a few endpoints, resolve a few DNS queries and send a few HTTP requests. If these are successful then it exits cleanly, otherwise it quits with a non-zero exit code.

Usage

Just run the concheck binary - that's it! I designed it to be run as part of a shell pipeline in a cronjob thereby avoiding cronspam when my (ADSL) internet connection dies e.g.:

* * * * * /usr/local/bin/concheck && curl -sS https://api.service.com/webhook

On Linux you will need to run the binary with CAP_NET_RAW privileges in order to send ICMP packets (running as root is strongly discouraged). You can do this by running sudo setcap cap_net_raw=+ep /usr/local/bin/concheck in a terminal.

The (non-zero) exit code determines the type of connectivity failure:

Exit CodeWhat's not working?
1HTTP connectivity broken
2ICMP connectivity broken
3DNS resolution broken

There are two command line flags to explicitly force the connectivity checks to use either IPv4 or IPv6. These are -4 and -6 respectively. In most situations however, you will not need to use either. We're clever enough to figure out when you're running with an IPv4- or IPv6-only connection and squelch out the "network unreachable" errors in those situations.

Installation

Pre-built binaries for a variety of operating systems and architectures are available to download from GitHub Releases. If you wish to compile from source then you will need a suitable Go toolchain installed. After that just clone the project using Git and run Make! Cross-compilation is easy in Go so by default we build for all targets and place the resulting executables in ./bin:

git clone https://github.com/CHTJonas/concheck.git
cd concheck
make clean && make all

Copyright

concheck is licensed under the BSD 2-Clause License.

Copyright (c) 2021 Charlie Jonas.

# Packages

No description provided by the author
No description provided by the author