30 lines
961 B
Bash
Executable File
30 lines
961 B
Bash
Executable File
verify_ptr() {
|
|
LABEL="$1"
|
|
IP=$(curl -s -H "Authorization: Bearer $LINODE_API_TOKEN" https://api.linode.com/v4/linode/instances \
|
|
| jq -r --arg LABEL "$LABEL" '.data[] | select(.label == $LABEL) | .ipv4[0]')
|
|
LINODE_ID=$(curl -s -H "Authorization: Bearer $LINODE_API_TOKEN" https://api.linode.com/v4/linode/instances \
|
|
| jq -r --arg LABEL "$LABEL" '.data[] | select(.label == $LABEL) | .id')
|
|
|
|
if [[ -z "$IP" || -z "$LINODE_ID" ]]; then
|
|
echo "❌ Could not retrieve IP or Linode ID for label '$LABEL'"
|
|
return 1
|
|
fi
|
|
|
|
echo "Re-attempting rDNS update for $LABEL ($IP)..."
|
|
PTR_NAME="${LABEL}.doinkle.pro"
|
|
RDNS_PAYLOAD=$(cat <<EOF
|
|
{
|
|
"rdns": "$PTR_NAME"
|
|
}
|
|
EOF
|
|
)
|
|
|
|
RESPONSE=$(curl -s -w "\nHTTP Status: %{http_code}\n" -X PUT \
|
|
-H "Authorization: Bearer $LINODE_API_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$RDNS_PAYLOAD" \
|
|
"https://api.linode.com/v4/linode/instances/$LINODE_ID/ips/$IP")
|
|
|
|
echo "$RESPONSE"
|
|
}
|