#################################################################################
type -P which > /dev/null || which() { type -P "$1" 2>&1; }
+cat_stty() {
+ usage="cat_stty DEVICE [BAUD=9600]"
+ local dev="${1?$usage}"
+ local baud="${2:-9600}"
+ echo cat "$dev" "$baud"
+}
+
which nproc > /dev/null || nproc() {
case "$OSTYPE" in
darwin*) sysctl -n hw.ncpu ;;
local url='';
for url in http://nicolas.boisselier.free.fr/myip/ http://nbdom.net/myip http://ipinfo.io/ip http://www.ipchicken.com http://icanhazip.com http://ident.me
do
- #http_get "$url" 2> /dev/null | awk 'match($0, /([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/) {print substr($0, RSTART, RLENGTH); exit 64}'
- #http_get "$url" | perl -ne 'print "$1\n" and exit 64 if /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/';
http_get "$url" | sed -n '/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/p; q' | awk '{print $1; exit 64}'
[ "$?" == "64" ] && return 0;
http_get() {
if which curl 1>/dev/null; then
- curl -sk $*
+ curl -sk --netrc $*
elif which wget 1>/dev/null; then
wget -O - --quiet --no-verbose --no-check-certificate --timeout 10 --tries 1 $*
http_head() {
if which curl 1>/dev/null; then
- curl -sk --head $*
+ http_get --head $*
elif which wget 1>/dev/null; then
http_get --save-headers - $* | perl -ne '/^\s*$/ and last;print'
elif which lynx 1>/dev/null; then
- lynx --head -dump $*
+ http_get --head $*
else
echo "Can't find web client" 1>&2