Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 22/02/2010, à 10:22

bleuberry

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

si sa fonctionne sur chrome  Adblock ?:P

Dernière modification par bleuberry (Le 22/02/2010, à 10:24)

Hors ligne

#52 Le 22/02/2010, à 10:50

sergeG75018

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Ça fonctionne pas avec epiphany sad


Ironie, sarcasme ou cynisme? Je ne sais plus

Hors ligne

#53 Le 22/02/2010, à 10:55

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

apres l'installation de ce hosts, il m'affiche une erreur à chaque utilisation de sudo :

sudo: unable to resolve host hizo-pc

quand je remets mon ancien fichier, pas de probleme...

EDIT : j'ai dû ajouter :

127.0.1.1	hizo-pc

Cela fonctionne pas mal smile

Dernière modification par Hizoka (Le 23/02/2010, à 03:13)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#54 Le 23/02/2010, à 14:29

bleuberry

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

:(elle me fait vraiment chier :http://fr.partypoker.com/td/videopop/pp_videopop.htm

Dernière modification par bleuberry (Le 23/02/2010, à 14:33)

Hors ligne

#55 Le 25/02/2010, à 17:46

brizou

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Petite question j'ai une fonction dans mon routeur qui me permet de bloquer des sites
20d8f97a6715db8dc2fa4db009c43tt.jpg
Puis-je envoyer selon vous le fichier hosts sur le routeur directement, taper tout à la main, je préfèrerais éviter.

Dernière modification par brizou (Le 25/02/2010, à 17:47)

Hors ligne

#56 Le 25/02/2010, à 18:13

Patrik

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

sergeG75018 a écrit :

Ça fonctionne pas avec epiphany sad

Ça ne peut pas ne pas fonctionner, car c'est au niveau des règles de résolutions des noms de domaines, indépendamment des applications. tongue

Hors ligne

#57 Le 26/02/2010, à 09:58

sergeG75018

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

fallait juste redémarrer...
merci.


Ironie, sarcasme ou cynisme? Je ne sais plus

Hors ligne

#58 Le 27/02/2010, à 07:58

Lylyrian

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Ca me semble une bonne idée, surtout pour les liens malveillants. Par contre pour la pub, est-ce que ça ne pose pas de problème quand on veut aller sur un site qui d'habitude nous envoie de la pub ? Genre en temps normal on préfère ne pas voir les pubs des Trois pt'its suisses, mais le jour où on a une commande à faire, on a besoin de voir le site...

Cela m'est déjà arrivé avec Adblock Plus (me souvient plus sur quels sites), là la solution était simple, désactiver Adblock le temps du surf. Mais s'il faut changer le fichier host c'est moins simple.

Est-ce que ce genre de cas est géré d'une manière ou d'une autre ?


Mieux vaut poser une question débile et avoir la réponse que de rester comme un con devant son ordi...

Hors ligne

#59 Le 13/03/2010, à 20:34

bleuberry

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

la pub ces comme les cafards hmm

Hors ligne

#60 Le 13/03/2010, à 23:45

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

je vous poste ma version de mise à jour automatique (ajout automatique de 127.0.1.1 nom de la machine) avec un peu de couleur, des vérifications et expliquée :

NOIR="\033[1;0m"
BLEUFONCE="\033[1;34m"
ROUGE="\033[1;31m"

echo -e "\n${BLEUFONCE}Comparaison des versions...\n${NOIR}"

# Vérification des versions
V_local=$(sed -n 's/# AdZHosts v0*\(.*\)/\1/p' /etc/hosts)
V_net=$(links -dump http://kosvocore.free.fr/AdZHosts/Version.txt | sed 's/ //g ; s/^0*//')

# Comparaison des versions
if [[ ${V_local} -lt ${V_net} ]]
then
	echo -e "${BLEUFONCE}Mise à jour en cours...\n${NOIR}"

	# Téléchargement du fichier hosts
	wget "http://kosvocore.free.fr/AdZHosts/HOSTS.txt" -O /tmp/hosts

	# Vérification du download
	if [[ ! -e /tmp/hosts ]]
	then
		echo -e "${ROUGE}Une erreur est survenue pendant la récupération du fichier Hosts.\n${NOIR}"
		exit 1
	fi

	# Ajout de la ligne 127.0.1.1 nom de la machine
	sed -i "/127.0.0.1.*localhost/a\127.0.1.1 $(uname -n)" /tmp/hosts

	# Vérification de la modification
	if [[ -z $(grep "127.0.1.1 $(uname -n)" /tmp/hosts) ]]
	then
		echo -e "${ROUGE}Une erreur est survenue pendant la modification du fichier Hosts.\n${NOIR}"
		exit 1
	fi

	# Sauvegarde de l'ancinne version hosts
	sudo cp /etc/hosts /etc/hosts_$(date +%F)

	#Installation du nouveau hosts
	sudo cp /tmp/hosts /etc/hosts

	# Vérification de la bonne copie
	if [[ /tmp/hosts -nt /etc/hosts ]]
	then
		echo -e "${ROUGE}Une erreur est survenue pendant la copie du fichier Hosts.\n${NOIR}"
		exit 1
	else
		rm /tmp/hosts		
		echo -e "${BLEUFONCE}Mise à jour terminée.\n${NOIR}"
	fi

elif [[ ${V_local} -eq ${V_net} ]]
then
	echo -e "${BLEUFONCE}Fichier hosts déjà à jour...\n${NOIR}"
	exit 1

else
	echo -e "${ROUGE}Fichier hosts plus évolué que la version internet ??!\n${NOIR}"
	exit 1
fi

dommage qu'il n'y est pas un fichier hosts sur le serveur, cela aurait permis d'être encore plus court et simple en utilisant le "wget --timestamping" afin de ne mettre à jour que si le fichier est lus recent que le local.

si vous pouvez me faire un petit retour smile
merci

Dernière modification par Hizoka (Le 13/03/2010, à 23:49)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#61 Le 13/03/2010, à 23:58

wido

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Hors ligne

#62 Le 14/03/2010, à 00:00

Ctrl + Alt + Sup

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Fonctionne bien...

Existe-t-il un moyen de remplacer tous les liens "tricards" par je sais pas, des carrés blancs pour éviter les pollutions genre "Not Found The requested URL bla bla ..." ?


Shuttle XPc + Ubuntu 8.04
AMD Athlon(tm) XP2400+ / 2Gb RAM / 2*DD S-ATA 120 Gb / ATI9600 et pourtant tout roule ! Comme quoi !
Numéro d'utilisateur Linux 507046

Hors ligne

#63 Le 14/03/2010, à 00:49

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

non le 1er est un .txt et le 2eme n'existe pas

ca serait bien en effet ctrl...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#64 Le 14/03/2010, à 00:56

Qid

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Hizoka a écrit :

non le 1er est un .txt

et le fichier hosts tu crois que c'est quoi ?
c'est un fichier texte wink : je vois mal ce que tu voudrais


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#65 Le 14/03/2010, à 02:20

kyncani

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

A voir, si l'on a confiance dans le site.
Je me suis également fait mon petit script de mise à jour, les goûts et les couleurs hein smile
J'utilise un fichier /etc/hosts.local pour conserver les préférences locales.
Et je ne change pas le fichier /etc/hosts si son contenu n'a pas changé.
Le travail se fait silencieusement et il n'affiche quelque chose qu'en cas d'erreur.

EDIT: J'ai changé ma procédure de mise à jour.
Nouvelle version :

#! /usr/bin/env python

#######################################################################
##
## Mise a jour de /etc/hosts a partir de http://www.adzhosts.com
##
## Decouvert via http://forum.ubuntu-fr.org/viewtopic.php?id=371304
##
## - Les preferences locales du fichier /etc/hosts sont contenues
##   dans /etc/hosts.local
## - Les mises a jour sont ignorees si elles redirigent vers un ip
##   autre que 127.0.0.1 ou ::1
##
#######################################################################

## Online host file, with associated valid ips
hosts_provider = "http://kosvocore.free.fr/AdZHosts/HOSTS.txt"
provider_allowed_ips = "127.0.0.1","::1"

## Host file
hosts = "/etc/hosts"

## Local host customization
localconfig = "/etc/hosts.local"

#######################################################################

import sys
import os
import shutil
import urllib2
import re
import time

#######################################################################

def url_exception_handler(exc) :
	"""Handle exceptions while fetching data from url"""
	print >>sys.stderr, "Error while retrieving data from "+url+", aborting ("+str(exc)+")"
	sys.exit(1)

def load_hosts(url) :
	"""Load a hosts file into data and ips global vars"""
	global data
	global ips
	if url.startswith("/") :
		handler = file(url)
		islocal = True
	else :
		try : handler = urllib2.urlopen(url)
		except Exception, exc : url_exception_handler(exc)
		islocal = False
	data.append("####")
	data.append("## Beginning of "+url)
	while True :
		try : line = handler.readline()
		except Exception, exc :
			if not islocal : url_exception_handler(exc)
			raise
		## Handle windows line-termination gracefully
		line = line.replace("\r", "")
		if line == "" : break
		line = line.rstrip("\n")
		if re.search(r"^\s*(?:#.*)?$", line) :
			data.append(line)
			continue
		m = re.search(r"^(?P<ip>\S+)\s+(?P<hostnames>[^#]*?)\s*(?P<comment>#.*?)?\s*$", line)
		if not m :
			if url == localconfig :
				data.append(line)
				continue
			else :
				print >>sys.stderr, "Ignoring malformed line "+line
				continue
		ip = m.group("ip")
		hostnames = re.split(r"\s+", m.group("hostnames"))
		## Ignore ip redirections update if they are deemed unsafe
		if url != localconfig and ip not in provider_allowed_ips :
			print >>sys.stderr, "Warning: ignoring unsafe update: "+line
			continue
		## Remove hostnames duplicates
		newhostnames = []
		for h in hostnames :
			if ips.has_key(h) : continue
			ips[h] = ip
			newhostnames.append(h)
		if len(newhostnames) == 0 : continue
		if m.group("comment") is not None :
			data.append(m.group("comment"))
		## Only put one hostname per line when using external sources
		if url == localconfig :
			data.append(ip+"\t"+" ".join(newhostnames))
		else :
			data.extend([ ip+"\t"+hostname for hostname in newhostnames ])
	data.append("## End of "+url)
	data.append("####")
	data.append("")

#######################################################################

## Program name
prog = os.path.basename(sys.argv[0])

## New data for /etc/hosts
data = [
	"##",
	"## Autogenerated by "+prog+" at "+time.asctime(),
	"## DO NOT MODIFY, edit "+localconfig+" and rerun "+prog+" instead",
	"##",
	"",
	]

## Hostname -> ip associations
ips = {}

## Backup /etc/hosts the first time we run
if not os.path.exists(localconfig) :
	shutil.copy2(hosts, localconfig)

## Build new hosts file
for url in localconfig, hosts_provider :
	load_hosts(url)

## Don't update config file if hasn't changed
rawdata = "\n".join(data)+"\n"
if os.path.exists(hosts) and file(hosts).read() == rawdata :
	sys.exit(0)

## Change hosts file
tmp = hosts + os.extsep + "tmp"
f = file(tmp, "w")
f.write(rawdata)
f.flush()
f.close()
try : shutil.copymode(local, tmp)
except Exception : os.chmod(tmp, 00644)
os.rename(tmp,hosts)

#######################################################################

Ancienne version :

#! /usr/bin/env bash

#######################################################################

## Online host file
url="http://kosvocore.free.fr/AdZHosts/HOSTS.txt"

## Host file
hosts="/etc/hosts"

## Local host customization
local="$hosts.local"

## Temporary build location
tmp="$hosts.tmp"

#######################################################################

## Backup /etc/hosts the first time we run
test -e "$local" || cp -a "$hosts" "$local" || exit 1

## Build new hosts
! test -e "$tmp" || rm -f "$tmp" || exit 1
{ { ! test -e "$local" || cat "$local"; } && wget -q -O- "$url"; } >"$tmp" || exit 1
chmod 00644 "$tmp" || exit 1

## Don't update config file if it hasn't changed
if test -e "$hosts" && diff -q "$hosts" "$tmp" >/dev/null; then
        rm -f "$tmp" &>/dev/null
        exit 0
fi

## Change hosts file
mv -f "$tmp" "$hosts"

#######################################################################

Dernière modification par kyncani (Le 14/03/2010, à 15:45)

Hors ligne

#66 Le 14/03/2010, à 02:27

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Qid => il faudrait que le fichier à dl se nomme de la même façon que le fichier local, soit hosts et non hosts.txt

sauf si j'ai raté quelque chose avec l'option de wget... j'ai testé avec -O hosts mais ça ne fonctionne pas.

après ça change pas grand chose...

kyncani => en effet, chacun ses préférences smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#67 Le 14/03/2010, à 02:29

kyncani

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

C'est -Ohosts, il n'y a pas d'espace après -O.

Hors ligne

#68 Le 14/03/2010, à 03:39

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

ca ne fait pas de différence avec ou sans espace.

le truc :
-O : permet de lui dire ou télécharger le fichier.
--timestamping : permet de dire regarde si le fichier à dl est plus récent que le fichier du dossier actuel, mais si le nom du fichier net et diffèrent du local, ca ne marche pas même si c'est hosts et hosts.txt


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#69 Le 14/03/2010, à 09:31

wido

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

http://rlwpx.free.fr/WPFF/hosts.htm le fichier a du être effacé ou il y a changé de nom hmm

Hors ligne

#70 Le 14/03/2010, à 11:19

kyncani

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Il est là http://kosvocore.free.fr/AdZHosts/HOSTS.txt

Hors ligne

#71 Le 14/03/2010, à 11:30

kyncani

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Au fait, je me permet de signaler qu'il est dangereux d'utiliser un fichier /etc/hosts qui vient de l'extérieur sans vérifier son contenu.
En particulier, les scripts de mise à jour automatique d'Hizoka et moi-même ne sont pas forcément une bonne idée.
Supposez par exemple que quelqu'un décide un jour de mettre dans le fichier hosts.txt la ligne suivante :
10.234.23.17  www.paypal.com
Et bien là, lorsque votre navigateur devra contacter www.paypal.com, il se connnectera à l'adresse ip fournie dans le fichier hosts. Et pour certains sites, comme paypal par exemple, il vaut quand même mieux être sur le bon site plutôt qu'un site forgé.

Hors ligne

#72 Le 14/03/2010, à 11:58

dwan

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Je me suis fait la même remarque. Il faudrait un script simple et compréhensible qui vérifie que toutes les adresses que l'on veut blacklister sont bien associées à 127.0.0.1, et qui liste toute autre IP trouvée.

Plus simplement, un script qui retourne toute IP différente de 127.0.0.1 et le ou les sites associés.

edit : une ligne de ce genre suffirait ? Elle renvoie toutes les lignes du fichier /etc/hosts ne contenant pas 127.0.0.1, précédées de leur numéro de ligne.

grep -nv '127.0.0.1' /etc/hosts

re-edit : testé chez moi en rajoutant des lignes bizarres et des adresses IP au pif, ça marche bien, adopté !

Dernière modification par dwan (Le 14/03/2010, à 12:28)


Auto-hébergé !
HP dv6164ea

Hors ligne

#73 Le 14/03/2010, à 12:24

Hizoka

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

oui c'est pas dur à faire, je l'ajoute vite fait et je poste...

NOIR="\033[1;0m"
BLEUFONCE="\033[1;34m"
ROUGE="\033[1;31m"

echo -e "\n${BLEUFONCE}Comparaison des versions...\n${NOIR}"

# Vérification des versions
V_local=$(sed -n 's/# AdZHosts v0*\(.*\)/\1/p' /etc/hosts)
V_net=$(links -dump http://kosvocore.free.fr/AdZHosts/Version.txt | sed 's/ //g ; s/^0*//')

# Comparaison des versions
if [[ ${V_local} -lt ${V_net} ]]
then
    echo -e "${BLEUFONCE}Mise à jour en cours...\n${NOIR}"

    # Téléchargement du fichier hosts
    wget "http://kosvocore.free.fr/AdZHosts/HOSTS.txt" -O /tmp/hosts

    # Vérification du download
    if [[ ! -e /tmp/hosts ]]
    then
        echo -e "${ROUGE}Une erreur est survenue pendant la récupération du fichier Hosts.\n${NOIR}"
        exit 1
    fi

    # Ajout de la ligne 127.0.0.1 nom de la machine
    sed -i "/127.0.0.1.*localhost/a\127.0.0.1 $(uname -n)" /tmp/hosts

    # Vérification de la modification
    if [[ -z $(grep "127.0.0.1 $(uname -n)" /tmp/hosts) ]]
    then
        echo -e "${ROUGE}Une erreur est survenue pendant la modification du fichier Hosts.\n${NOIR}"
        exit 1
    fi

	adresse_autre=$(egrep -v "^127.0.0.1|^#|^255.255.255.255|^$|^::1" /etc/hosts)

	# Vérification des adresses
	if [[ -n ${adresse_autre} ]]
	then
		echo -e "${ROUGE}Attention, des il y a des adresses possiblement dangeureuses :\n${NOIR}"
		echo "${adresse_autre}"
	fi

    # Sauvegarde de l'ancinne version hosts
    sudo cp /etc/hosts /etc/hosts_$(date +%F)

    #Installation du nouveau hosts
    sudo cp /tmp/hosts /etc/hosts

    # Vérification de la bonne copie
    if [[ /tmp/hosts -nt /etc/hosts ]]
    then
        echo -e "${ROUGE}Une erreur est survenue pendant la copie du fichier Hosts.\n${NOIR}"
        exit 1
    else
        rm /tmp/hosts        
        echo -e "${BLEUFONCE}Mise à jour terminée.\n${NOIR}"
    fi

elif [[ ${V_local} -eq ${V_net} ]]
then
    echo -e "${BLEUFONCE}Fichier hosts déjà à jour...\n${NOIR}"
    exit 1

else
    echo -e "${ROUGE}Fichier hosts plus évolué que la version internet ??!\n${NOIR}"
    exit 1
fi

ajout de :

	adresse_autre=$(egrep -v "^127.0.0.1|^#|^255.255.255.255|^$|^::1" /etc/hosts)

	# Vérification des adresses
	if [[ -n ${adresse_autre} ]]
	then
		echo -e "${ROUGE}Attention, des il y a des adresses possiblement dangeureuses :\n${NOIR}"
		echo "${adresse_autre}"
	fi

il recherche les lignes ne débutant pas par 127.0.0.1 ou 255.255.255.255 ou # ou ::1 ou vide

Dernière modification par Hizoka (Le 14/03/2010, à 14:05)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#74 Le 14/03/2010, à 12:44

kyncani

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Idem, mais je ne sais toujours pas si je vais l'adopter.
Mettre à jour automatiquement son /etc/hosts, bon ... à voir.

Donc :
- J'utilise un fichier /etc/hosts.local pour conserver les préférences locales.
- Je ne change pas le fichier /etc/hosts si son contenu n'a pas changé.
- Le travail se fait silencieusement et il n'affiche quelque chose qu'en cas de warning ou d'erreur.
- Les mises à jour sont ignorées si elles redirigent vers une ip autre que 127.0.0.1 ou ::1

#! /usr/bin/env python

#######################################################################
##
## Mise a jour de /etc/hosts a partir de http://www.adzhosts.com
##
## Decouvert via http://forum.ubuntu-fr.org/viewtopic.php?id=371304
##
## - Les preferences locales du fichier /etc/hosts sont contenues
##   dans /etc/hosts.local
## - Les mises a jour sont ignorees si elles redirigent vers un ip
##   autre que 127.0.0.1 ou ::1
##
#######################################################################

## Online host file, with associated valid ips
hosts_provider = "http://kosvocore.free.fr/AdZHosts/HOSTS.txt"
provider_allowed_ips = "127.0.0.1","::1"

## Host file
hosts = "/etc/hosts"

## Local host customization
localconfig = "/etc/hosts.local"

#######################################################################

import sys
import os
import shutil
import urllib2
import re
import time

#######################################################################

def url_exception_handler(exc) :
	"""Handle exceptions while fetching data from url"""
	print >>sys.stderr, "Error while retrieving data from "+url+", aborting ("+str(exc)+")"
	sys.exit(1)

def load_hosts(url) :
	"""Load a hosts file into data and ips global vars"""
	global data
	global ips
	if url.startswith("/") :
		handler = file(url)
		islocal = True
	else :
		try : handler = urllib2.urlopen(url)
		except Exception, exc : url_exception_handler(exc)
		islocal = False
	data.append("####")
	data.append("## Beginning of "+url)
	while True :
		try : line = handler.readline()
		except Exception, exc :
			if not islocal : url_exception_handler(exc)
			raise
		## Handle windows line-termination gracefully
		line = line.replace("\r", "")
		if line == "" : break
		line = line.rstrip("\n")
		if re.search(r"^\s*(?:#.*)?$", line) :
			data.append(line)
			continue
		m = re.search(r"^(?P<ip>\S+)\s+(?P<hostnames>[^#]*?)\s*(?P<comment>#.*?)?\s*$", line)
		if not m :
			if url == localconfig :
				data.append(line)
				continue
			else :
				print >>sys.stderr, "Ignoring malformed line "+line
				continue
		ip = m.group("ip")
		hostnames = re.split(r"\s+", m.group("hostnames"))
		## Ignore ip redirections update if they are deemed unsafe
		if url != localconfig and ip not in provider_allowed_ips :
			print >>sys.stderr, "Warning: ignoring unsafe update: "+line
			continue
		## Remove hostnames duplicates
		newhostnames = []
		for h in hostnames :
			if ips.has_key(h) : continue
			ips[h] = ip
			newhostnames.append(h)
		if len(newhostnames) == 0 : continue
		if m.group("comment") is not None :
			data.append(m.group("comment"))
		## Only put one hostname per line when using external sources
		if url == localconfig :
			data.append(ip+"\t"+" ".join(newhostnames))
		else :
			data.extend([ ip+"\t"+hostname for hostname in newhostnames ])
	data.append("## End of "+url)
	data.append("####")
	data.append("")

#######################################################################

## Program name
prog = os.path.basename(sys.argv[0])

## New data for /etc/hosts
data = [
	"##",
	"## Autogenerated by "+prog+" at "+time.asctime(),
	"## DO NOT MODIFY, edit "+localconfig+" and rerun "+prog+" instead",
	"##",
	"",
	]

## Hostname -> ip associations
ips = {}

## Backup /etc/hosts the first time we run
if not os.path.exists(localconfig) :
	shutil.copy2(hosts, localconfig)

## Build new hosts file
for url in localconfig, hosts_provider :
	load_hosts(url)

## Don't update config file if hasn't changed
rawdata = "\n".join(data)+"\n"
if os.path.exists(hosts) and file(hosts).read() == rawdata :
	sys.exit(0)

## Change hosts file
tmp = hosts + os.extsep + "tmp"
f = file(tmp, "w")
f.write(rawdata)
f.flush()
f.close()
try : shutil.copymode(local, tmp)
except Exception : os.chmod(tmp, 00644)
os.rename(tmp,hosts)

#######################################################################

Dernière modification par kyncani (Le 14/03/2010, à 15:46)

Hors ligne

#75 Le 14/03/2010, à 14:00

dwan

Re : [astuce] Un fichier HOSTS qui combat les pubs et liens malveillants !

Hizoka a écrit :
	adresse_autre=$(egrep -v "^127.0.0.1|^#|^255.255.255.255|^$|::1" /etc/hosts)

	# Vérification des adresses
	if [[ -n ${adresse_autre} ]]
	then
		echo -e "${ROUGE}Attention, des il y a des adresses possiblement dangeureuses :\n${NOIR}"
		echo "${adresse_autre}"
	fi

il recherche les lignes ne débutant pas par 127.0.0.1 ou 255.255.255.255 ou # ou ::1 ou vide

Tu as oublié un ^ ? Tu risques de passer à côté de lignes contenant ::1, mais ne débutant pas par ::1, ce qui inclut des adresses potentiellement dangereuses. Je précise que je ne suis pas très familier avec ipv6...

@kyncani : Je ne ferai pas non plus de mise à jour automatique. Je téléchargerai au coup par coup, et vérifierai à la main avec une variante de ma commande améliorée grâce au script de Hizoka :

~$ egrep -nv '^127.0.0.1|^::1|^$|^#|' /etc/hosts

Dernière modification par dwan (Le 14/03/2010, à 14:06)


Auto-hébergé !
HP dv6164ea

Hors ligne