docker, network and others
This commit is contained in:
51
helpers/net.sh
Normal file
51
helpers/net.sh
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
########################################################
|
||||
# Networking functions
|
||||
########################################################
|
||||
|
||||
get_current_ip() {
|
||||
local CURRENT_IP
|
||||
[ -f /etc/os-release ] && source /etc/os-release
|
||||
case "$ID" in
|
||||
debian|ubuntu) CURRENT_IP=$(hostname -I | awk '{print $1}') ;;
|
||||
alpine) CURRENT_IP=$(ip -4 addr show eth0 | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1) ;;
|
||||
*) CURRENT_IP="Unknown" ;;
|
||||
esac
|
||||
echo "$CURRENT_IP"
|
||||
}
|
||||
|
||||
get_external_ip() {
|
||||
local ip="$(curl -s https://api.myip.com | jq .ip)"
|
||||
echo "$ip" | tr -d '"'
|
||||
}
|
||||
|
||||
is_valid_ipv4() {
|
||||
local ip="$1"
|
||||
local regex="^([0-9]{1,3}\.){3}[0-9]{1,3}$"
|
||||
|
||||
if [[ $ip =~ $regex ]]; then
|
||||
IFS='.' read -r -a parts <<< "$ip"
|
||||
for part in "${parts[@]}"; do
|
||||
if ! [[ $part =~ ^[0-9]+$ ]] || ((part < 0 || part > 255)); then
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
curltime() {
|
||||
curl -w @- -o /dev/null -s "$@" <<'EOF'
|
||||
time_namelookup: %{time_namelookup} sec\n
|
||||
time_connect: %{time_connect} sec\n
|
||||
time_appconnect: %{time_appconnect} sec\n
|
||||
time_pretransfer: %{time_pretransfer} sec\n
|
||||
time_redirect: %{time_redirect} sec\n
|
||||
time_starttransfer: %{time_starttransfer} sec\n
|
||||
---------------\n
|
||||
time_total: %{time_total} sec\n
|
||||
EOF
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user