ifplugstatus is an utility which may be used to detect the link status of a local Linux ethernet device, much in the same way mii-diag, mii-tool and ethtool work. In fact it supports all three different APIs these three tools use. In addition it supports link checking with the IFF_RUNNING interface flag, which most modern drivers (not only ethernet) support, and association status checking with the wireless extension API for WLAN devices.
The APIs are tried in the following order:
First the newest API: SIOCETHTOOL (aka ethtool API)
Second the next older API: SIOCGMIIREG (aka mii-diag API)
Than the WLAN API: wireless extension (aka iwconfig API)
Followed by the cleanest API: IFF_RUNNING (aka ifconfig API)
The oldest API (SIOCPRIV aka mii-tool API) is not tested since it is obsolete.
ifplugstatus may be used in shell script since it returns the current status as return value. It is especially useful to detect the available APIs on the used network driver. (Option -v)
You may specify an ethernet device on the command line. Otherwise ifplugstatus will check all available network interfaces.
-a | --auto
Enable interface automatically before querying (default: off)
-h | --help
-q | --quiet
Decrease verbosity by one. If the verbosity is < 0, no text will be shown, only the return value is relevant; if the verbosity is = 0, a terse status will be shown; If the verbosity is > 0, detailed information about the used API is returned. (By default the verbosity is 0)
-v | --verbose
Increase verbosity by one. See option -q.
-V | --version
2 Link beat detected (only available when an interface is specified)