mirror of
https://github.com/C24Be/AS_Network_List.git
synced 2026-04-03 16:18:51 +03:00
+ routes
This commit is contained in:
78
blacklists_updater_routes.sh
Normal file
78
blacklists_updater_routes.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
# Source files for name-based VK filtering
|
||||
AUTO_ALL_V4_FILE="${SCRIPT_DIR}/auto/all-ru-ipv4.txt"
|
||||
AUTO_ALL_V6_FILE="${SCRIPT_DIR}/auto/all-ru-ipv6.txt"
|
||||
AUTO_RIPE_V4_FILE="${SCRIPT_DIR}/auto/ripe-ru-ipv4.txt"
|
||||
VK_NAME_PATTERN='VK[[:space:]-]*CLOUD|VKCOMPANY|VKONTAKTE'
|
||||
|
||||
# Additional VK-only text blacklists
|
||||
VK_INPUT_FILE="${SCRIPT_DIR}/blacklists/blacklist-vk.txt"
|
||||
VK_INPUT_V4_FILE="${SCRIPT_DIR}/blacklists/blacklist-vk-v4.txt"
|
||||
VK_INPUT_V6_FILE="${SCRIPT_DIR}/blacklists/blacklist-vk-v6.txt"
|
||||
|
||||
# Output directory and files
|
||||
ROUTES_OUTPUT_DIR="${SCRIPT_DIR}/blacklists_route"
|
||||
ROUTES_V4_FILE="${ROUTES_OUTPUT_DIR}/blacklist-vk-v4.routes"
|
||||
ROUTES_V6_FILE="${ROUTES_OUTPUT_DIR}/blacklist-vk-v6.routes"
|
||||
|
||||
mkdir -p "${ROUTES_OUTPUT_DIR}" "${SCRIPT_DIR}/blacklists"
|
||||
|
||||
echo "Generating VK route blacklists..."
|
||||
|
||||
# Build additional VK-only blacklist from network names in auto/*.txt files
|
||||
TMP_VK_FILE="$(mktemp "${SCRIPT_DIR}/blacklists/.blacklist-vk.XXXXXX")"
|
||||
for source_file in "${AUTO_ALL_V4_FILE}" "${AUTO_ALL_V6_FILE}" "${AUTO_RIPE_V4_FILE}"; do
|
||||
[ -f "${source_file}" ] || continue
|
||||
awk -v pattern="${VK_NAME_PATTERN}" 'BEGIN { IGNORECASE = 1 } $0 ~ pattern { print $1 }' "${source_file}" >> "${TMP_VK_FILE}"
|
||||
done
|
||||
|
||||
sort -u "${TMP_VK_FILE}" > "${VK_INPUT_FILE}"
|
||||
grep ':' "${VK_INPUT_FILE}" | sort -u > "${VK_INPUT_V6_FILE}" || true
|
||||
grep -v ':' "${VK_INPUT_FILE}" | sort -u > "${VK_INPUT_V4_FILE}" || true
|
||||
rm -f "${TMP_VK_FILE}"
|
||||
|
||||
# Generate IPv4 routes file (route VK prefixes to loopback via 127.0.0.1)
|
||||
cat > "${ROUTES_V4_FILE}" << EOF
|
||||
# Linux routes for VK networks (IPv4)
|
||||
# Auto-generated by $(basename "$0")
|
||||
# Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
|
||||
#
|
||||
# Apply:
|
||||
# sudo sh $(basename "${ROUTES_V4_FILE}")
|
||||
#
|
||||
|
||||
EOF
|
||||
|
||||
while IFS= read -r network; do
|
||||
[ -n "${network}" ] || continue
|
||||
printf 'ip route replace %s via 127.0.0.1 dev lo onlink\n' "${network}" >> "${ROUTES_V4_FILE}"
|
||||
done < "${VK_INPUT_V4_FILE}"
|
||||
|
||||
# Generate IPv6 routes file (route VK prefixes to loopback via ::1)
|
||||
cat > "${ROUTES_V6_FILE}" << EOF
|
||||
# Linux routes for VK networks (IPv6)
|
||||
# Auto-generated by $(basename "$0")
|
||||
# Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
|
||||
#
|
||||
# Apply:
|
||||
# sudo sh $(basename "${ROUTES_V6_FILE}")
|
||||
#
|
||||
|
||||
EOF
|
||||
|
||||
while IFS= read -r network; do
|
||||
[ -n "${network}" ] || continue
|
||||
printf 'ip -6 route replace %s via ::1 dev lo\n' "${network}" >> "${ROUTES_V6_FILE}"
|
||||
done < "${VK_INPUT_V6_FILE}"
|
||||
|
||||
echo "✓ Generated: ${ROUTES_V4_FILE} (entries: $(wc -l < "${VK_INPUT_V4_FILE}" | tr -d ' '))"
|
||||
echo "✓ Generated: ${ROUTES_V6_FILE} (entries: $(wc -l < "${VK_INPUT_V6_FILE}" | tr -d ' '))"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " sudo sh ${ROUTES_V4_FILE}"
|
||||
echo " sudo sh ${ROUTES_V6_FILE}"
|
||||
Reference in New Issue
Block a user