fix: validate dotted IPv4 addresses correctly
This commit is contained in:
1 parent
a682a7be54
commit
749eedbf1e
1 file changed
+9
-1
+9
-1
@@ -22,7 +22,15 @@ command -v git >/dev/null 2>&1 || die "未找到 git"
|
||||
[ -n "$SERVER_IP" ] || SERVER_IP=$(ip -4 route get 1.1.1.1 2>/dev/null | awk '{for (i=1;i<=NF;i++) if ($i=="src") {print $(i+1); exit}}')
|
||||
[ -n "$SERVER_IP" ] || SERVER_IP=$(hostname -I 2>/dev/null | awk '{print $1}')
|
||||
[ -n "$SERVER_IP" ] || die "无法识别服务器 IP,请设置 OVERCOOKED_SERVER_IP"
|
||||
case "$SERVER_IP" in *[!0-9.]*|*[!0-9]*) die "仅支持 IPv4 地址:$SERVER_IP";; esac
|
||||
is_ipv4() {
|
||||
old_ifs=$IFS; IFS=.; set -- $1; IFS=$old_ifs
|
||||
[ "$#" = 4 ] || return 1
|
||||
for octet in "$@"; do
|
||||
case "$octet" in ''|*[!0-9]*) return 1;; esac
|
||||
[ "$octet" -le 255 ] 2>/dev/null || return 1
|
||||
done
|
||||
}
|
||||
is_ipv4 "$SERVER_IP" || die "仅支持有效 IPv4 地址:$SERVER_IP"
|
||||
[ -n "$AUTH_PUBLIC_KEYS" ] || die "请设置 OVERCOOKED_AUTH_PUBLIC_KEYS(Auth 公钥 JSON)"
|
||||
[ -n "$ACTIVATION_CODE" ] || printf '请输入授权码: '; [ -n "$ACTIVATION_CODE" ] || read -r ACTIVATION_CODE
|
||||
[ -n "$ACTIVATION_CODE" ] || die "授权码不能为空"
|
||||
|
||||
Reference in new issue
Block a user