Fixed ipv6 entries not falling on /etc/hosts. now domain leak won't happen considering ipv6 entries are appended by blocker script on /etc/hosts

This commit is contained in:
arul 2025-05-13 21:29:14 +05:30
parent b8596ef89e
commit 7bff744e37
4 changed files with 149 additions and 90 deletions

131
blocker
View File

@ -9,61 +9,101 @@ fi
DOMAINS_FILE="domains.txt" DOMAINS_FILE="domains.txt"
HOSTS_FILE="/etc/hosts" HOSTS_FILE="/etc/hosts"
TMP_FILE=$(mktemp)
TMP_HOSTS=$(mktemp) TMP_HOSTS=$(mktemp)
cp "$HOSTS_FILE" "$TMP_HOSTS" # Work on a temp copy
cp "$HOSTS_FILE" "$TMP_HOSTS"
CURRENT_CATEGORY="" CURRENT_CATEGORY=""
declare -a CATEGORY_DOMAINS=() declare -a CATEGORY_DOMAINS=()
log() {
echo "🔧 $1"
}
add_ipv4_block() {
local ip="127.0.0.1"
local comment="$1"
log "Adding IPv4 entries under category: $comment"
if grep -Fxq "$comment" "$TMP_HOSTS"; then
END_LINE=$(awk -v cat="$comment" '
$0 == cat { found=1; next }
found && $0 ~ /^#/ { exit }
found { line=NR }
END { print (line ? line : 0) }
' "$TMP_HOSTS")
INSERT_LINE=$((END_LINE + 1))
for domain in "${CATEGORY_DOMAINS[@]}"; do
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
log " Inserting $ip $domain at line $INSERT_LINE"
sed -i "${INSERT_LINE}i$ip $domain" "$TMP_HOSTS"
((INSERT_LINE++))
else
log " ⚠️ Skipping duplicate: $ip $domain"
fi
done
else
log " 🔹 Category not found, appending new category: $comment"
echo "" >> "$TMP_HOSTS"
echo "$comment" >> "$TMP_HOSTS"
for domain in "${CATEGORY_DOMAINS[@]}"; do
echo "$ip $domain" >> "$TMP_HOSTS"
log " Appended $ip $domain"
done
fi
}
add_ipv6_block() {
local ip="::1"
local comment="$1 ipv6"
log "Adding IPv6 entries under category: $comment"
if grep -Fxq "$comment" "$TMP_HOSTS"; then
END_LINE=$(awk -v cat="$comment" '
$0 == cat { found=1; next }
found && $0 ~ /^#/ { exit }
found { line=NR }
END { print (line ? line : 0) }
' "$TMP_HOSTS")
INSERT_LINE=$((END_LINE + 1))
for domain in "${CATEGORY_DOMAINS[@]}"; do
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
log " Inserting $ip $domain at line $INSERT_LINE"
sed -i "${INSERT_LINE}i$ip $domain" "$TMP_HOSTS"
((INSERT_LINE++))
else
log " ⚠️ Skipping duplicate: $ip $domain"
fi
done
else
log " 🔹 IPv6 category not found, appending: $comment"
echo "" >> "$TMP_HOSTS"
echo "$comment" >> "$TMP_HOSTS"
for domain in "${CATEGORY_DOMAINS[@]}"; do
echo "$ip $domain" >> "$TMP_HOSTS"
log " Appended $ip $domain"
done
fi
}
flush_category() { flush_category() {
[[ -z "$CURRENT_CATEGORY" ]] && return [[ -z "$CURRENT_CATEGORY" ]] && return
IPV4_COMMENT="$CURRENT_CATEGORY" log "📦 Flushing category: $CURRENT_CATEGORY"
IPV6_COMMENT="${CURRENT_CATEGORY} ipv6" add_ipv4_block "$CURRENT_CATEGORY"
add_ipv6_block "$CURRENT_CATEGORY"
# Only add if not already in file
add_block() {
local ip="$1"
local comment="$2"
if grep -Fxq "$comment" "$TMP_HOSTS"; then
# Find insertion point
END_LINE=$(awk -v cat="$comment" '
$0 == cat { found=1; next }
found && $0 ~ /^#/ { exit }
found { line=NR }
END { print (line ? line : 0) }
' "$TMP_HOSTS")
INSERT_LINE=$((END_LINE + 1))
for domain in "${CATEGORY_DOMAINS[@]}"; do
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
sed -i "${INSERT_LINE}i$ip $domain" "$TMP_HOSTS"
((INSERT_LINE++))
fi
done
else
{
echo ""
echo "$comment"
for domain in "${CATEGORY_DOMAINS[@]}"; do
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
echo "$ip $domain"
fi
done
} >> "$TMP_HOSTS"
fi
}
add_block "127.0.0.1" "$IPV4_COMMENT"
add_block "::1" "$IPV6_COMMENT"
# Reset
CURRENT_CATEGORY="" CURRENT_CATEGORY=""
CATEGORY_DOMAINS=() CATEGORY_DOMAINS=()
} }
# Read and process domains.txt
while IFS= read -r line || [ -n "$line" ]; do while IFS= read -r line || [ -n "$line" ]; do
line=$(echo "$line" | sed 's/^[ \t]*//;s/[ \t]*$//') line=$(echo "$line" | sed 's/^[ \t]*//;s/[ \t]*$//') # Trim spaces
[[ -z "$line" ]] && continue [[ -z "$line" ]] && continue
if [[ "$line" == \#* ]]; then if [[ "$line" == \#* ]]; then
@ -76,11 +116,12 @@ done < "$DOMAINS_FILE"
flush_category flush_category
# Backup and replace hosts file # Backup and replace /etc/hosts
cp "$HOSTS_FILE" "${HOSTS_FILE}.bak" cp "$HOSTS_FILE" "${HOSTS_FILE}.bak"
cat "$TMP_HOSTS" > "$HOSTS_FILE" cp "$TMP_HOSTS" "$HOSTS_FILE"
echo "✅ Domains have been categorized and added (IPv4 & IPv6) to $HOSTS_FILE." log "✅ Hosts file updated with IPv4 and IPv6 domain blocks under categories."
log "🗂️ Backup created at ${HOSTS_FILE}.bak"
rm "$TMP_FILE" "$TMP_HOSTS" rm "$TMP_HOSTS"

View File

@ -1,42 +1,4 @@
#socialmedia
facebook.com
www.facebook.com
m.facebook.com
mobile.facebook.com
fb.com
www.fb.com
instagram.com
www.instagram.com
tiktok.com
www.tiktok.com
snapchat.com
www.snapchat.com
reddit.com
www.reddit.com
twitter.com
www.twitter.com
x.com
www.x.com
pinterest.com
www.pinterest.com
linkedin.com
www.linkedin.com
threads.net
www.threads.net
youtube.com
www.youtube.com
youtu.be
discord.com
www.discord.com
web.whatsapp.com
whatsapp.com
www.whatsapp.com
messenger.com
www.messenger.com
odysee.com
www.odysee.com
#pornsites #pornsites
0.nextyourcontent.com 0.nextyourcontent.com
0.oldgyhogola.com 0.oldgyhogola.com
@ -18438,7 +18400,6 @@ gayforit.eu
gayforsex.com gayforsex.com
gayfreeporn.tv gayfreeporn.tv
gayfuck.tv gayfuck.tv
gayfuckporn.com
gayfuckporn.tv gayfuckporn.tv
gayfun.net gayfun.net
gayfuror.com gayfuror.com
@ -37635,7 +37596,6 @@ porn-granny-tube.com
porn-gratis.info porn-gratis.info
porn-hab.com porn-hab.com
porn-hd-videos.info porn-hd-videos.info
porn-hd.xxx
porn-hit.com porn-hit.com
porn-hub.be porn-hub.be
porn-hub.dk porn-hub.dk
@ -88349,7 +88309,6 @@ xhamster-com.zproxy.org
xhamster-teens.com xhamster-teens.com
xhamster.blog.br xhamster.blog.br
xhamster.co.hu xhamster.co.hu
xhamster.com
xhamster.desi xhamster.desi
xhamster.dev xhamster.dev
xhamster.fm xhamster.fm
@ -90882,3 +90841,52 @@ zzpornpics.com
zzsyw.com zzsyw.com
zzztube.com zzztube.com
zzztube.tv zzztube.tv
fuckedtube.xxx
www.fuckedtube.xxx
fuckvideos.xxx
www.fuckvideos.xxx
befuck.video
www.befuck.video
porn-hd.xxx
www.porn-hd.xxx
fra.xhamster.com
gayfuckporn.com
www.gayfuckporn.com
#socialmedia
facebook.com
www.facebook.com
m.facebook.com
mobile.facebook.com
fb.com
www.fb.com
instagram.com
www.instagram.com
tiktok.com
www.tiktok.com
snapchat.com
www.snapchat.com
reddit.com
www.reddit.com
twitter.com
www.twitter.com
x.com
www.x.com
pinterest.com
www.pinterest.com
linkedin.com
www.linkedin.com
threads.net
www.threads.net
youtube.com
www.youtube.com
youtu.be
discord.com
www.discord.com
web.whatsapp.com
whatsapp.com
www.whatsapp.com
messenger.com
www.messenger.com
odysee.com
www.odysee.com

View File

@ -1,4 +1,17 @@
#pornsites
fuckedtube.xxx
www.fuckedtube.xxx
fuckvideos.xxx
www.fuckvideos.xxx
befuck.video
www.befuck.video
porn-hd.xxx
www.porn-hd.xxx
fra.xhamster.com
gayfuckporn.com
www.gayfuckporn.com
#socialmedia #socialmedia
facebook.com facebook.com
www.facebook.com www.facebook.com

View File

@ -64,7 +64,4 @@ fi
rm "$TMP_DOMAINS" rm "$TMP_DOMAINS"
# Apply block echo " Run sudo ./blocker to add entries to /etc/hosts"
echo "🔒 Updating /etc/hosts..."
./blocker