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:
parent
b8596ef89e
commit
7bff744e37
91
blocker
91
blocker
|
@ -9,25 +9,24 @@ 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=()
|
||||||
|
|
||||||
flush_category() {
|
log() {
|
||||||
[[ -z "$CURRENT_CATEGORY" ]] && return
|
echo "🔧 $1"
|
||||||
|
}
|
||||||
|
|
||||||
IPV4_COMMENT="$CURRENT_CATEGORY"
|
add_ipv4_block() {
|
||||||
IPV6_COMMENT="${CURRENT_CATEGORY} ipv6"
|
local ip="127.0.0.1"
|
||||||
|
local comment="$1"
|
||||||
|
|
||||||
|
log "Adding IPv4 entries under category: $comment"
|
||||||
|
|
||||||
# Only add if not already in file
|
|
||||||
add_block() {
|
|
||||||
local ip="$1"
|
|
||||||
local comment="$2"
|
|
||||||
if grep -Fxq "$comment" "$TMP_HOSTS"; then
|
if grep -Fxq "$comment" "$TMP_HOSTS"; then
|
||||||
# Find insertion point
|
|
||||||
END_LINE=$(awk -v cat="$comment" '
|
END_LINE=$(awk -v cat="$comment" '
|
||||||
$0 == cat { found=1; next }
|
$0 == cat { found=1; next }
|
||||||
found && $0 ~ /^#/ { exit }
|
found && $0 ~ /^#/ { exit }
|
||||||
|
@ -35,35 +34,76 @@ flush_category() {
|
||||||
END { print (line ? line : 0) }
|
END { print (line ? line : 0) }
|
||||||
' "$TMP_HOSTS")
|
' "$TMP_HOSTS")
|
||||||
INSERT_LINE=$((END_LINE + 1))
|
INSERT_LINE=$((END_LINE + 1))
|
||||||
|
|
||||||
for domain in "${CATEGORY_DOMAINS[@]}"; do
|
for domain in "${CATEGORY_DOMAINS[@]}"; do
|
||||||
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
|
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"
|
sed -i "${INSERT_LINE}i$ip $domain" "$TMP_HOSTS"
|
||||||
((INSERT_LINE++))
|
((INSERT_LINE++))
|
||||||
|
else
|
||||||
|
log " ⚠️ Skipping duplicate: $ip $domain"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
{
|
log " 🔹 Category not found, appending new category: $comment"
|
||||||
echo ""
|
echo "" >> "$TMP_HOSTS"
|
||||||
echo "$comment"
|
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
|
for domain in "${CATEGORY_DOMAINS[@]}"; do
|
||||||
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
|
if ! grep -qE "^[[:space:]]*$ip[[:space:]]+$domain\$" "$TMP_HOSTS"; then
|
||||||
echo "$ip $domain"
|
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
|
fi
|
||||||
done
|
done
|
||||||
} >> "$TMP_HOSTS"
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
add_block "127.0.0.1" "$IPV4_COMMENT"
|
flush_category() {
|
||||||
add_block "::1" "$IPV6_COMMENT"
|
[[ -z "$CURRENT_CATEGORY" ]] && return
|
||||||
|
|
||||||
|
log "📦 Flushing category: $CURRENT_CATEGORY"
|
||||||
|
add_ipv4_block "$CURRENT_CATEGORY"
|
||||||
|
add_ipv6_block "$CURRENT_CATEGORY"
|
||||||
|
|
||||||
# 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"
|
||||||
|
|
||||||
|
|
90
domains.txt
90
domains.txt
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user