Interdire l'accès à certain sites internet

Soyez le premier à donner votre avis sur cette source.

Vue 13 711 fois - Téléchargée 789 fois

Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique :
Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique.

Description

Bonjour ;-)

Ben c'est un petit soft permettant d'interdire l'accès à certain sites Internet.

Grace à ce programme vous aller découvrie:

1-C'est quoi le fichier hosts
2-Comment charger un hosts dans une StringList
3-Ajouter/Supprimer des lignes du fichier
4-Enregistrer Une StringList dans un fichier hosts
5-Et enfin, comment Interdire l'accès à certain sites Internet via un programme crée en Delphi ;-)

Pour conclûre, je souhaite que mon exemple vous servira dans vos projets

Mes salutations les plus profondes distinguées.

Bonne chance et plein de succès.

Source / Exemple :


unit Afirst;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type
  TAFirstPage = class(TForm)
    PageControl: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    MmHost: TMemo;
    LBSites: TListBox;
    SBDelete: TSpeedButton;
    Panel: TPanel;
    EditSites: TEdit;
    SBAdd: TSpeedButton;
    LabelAdd: TLabel;
    GroupBox: TGroupBox;
    SBClose: TSpeedButton;
    SpeedButton1: TSpeedButton;
    LLSI: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure SBCloseClick(Sender: TObject);
    procedure SBAddClick(Sender: TObject);
    procedure SBDeleteClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure EditSitesKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  AFirstPage: TAFirstPage;
  ListeSites:TStrings;
implementation

{$R *.dfm}

procedure TAFirstPage.FormCreate(Sender: TObject);
var Hosts:string;
    Lignes:integer;
begin
LBSites.Clear; // Vider la ListBox

MmHost.Clear;    // Vider le memo

MmHost.Lines.LoadFromFile('C:\Windows\System32\Drivers\etc\hosts');// remplir le memo à partir du fichier hosts

ListeSites:=TStringList.Create; // Création d'une StringList

ListeSites.LoadFromFile('C:\Windows\System32\Drivers\etc\hosts');// charger la variable ListeSites à partir du fichier hosts
// maintenant on doit remplir notre ListBox à partir du hosts mais on a
// pas besoin d'avoir toutes le contenue du hosts, donc, on doit avoir que la
// liste des sites intendits
// si on appercoit le memo on constate que la liste des sites interdits
// commence par la Ligne 19, donc

for Lignes:=19 to ListeSites.Count-1 do
begin
hosts:=ListeSites.Strings[lignes];
if hosts<>'' then
LBSites.Items.Add(copy(hosts,17,length(hosts)));
end;

end;

procedure TAFirstPage.SBCloseClick(Sender: TObject);
begin
Application.Terminate; // Fermer l'application
end;

procedure TAFirstPage.SBAddClick(Sender: TObject);
begin
// Si EditSites n'est pas vide ajouter son contenue à LBSites si non Affichier le message
if EditSites.GetTextLen<>0 then
begin
// Ajouter le contenue de l'EditSites à notre LBSites (ListBox);
LBSites.Items.Add(EditSites.Text);
// Séléctionner le contenue de l'EditSites
EditSites.SelectAll;
// Ajouter le contenu de l'EditSites
ListeSites.Add('127.0.0.1       '+EditSites.Text);
// si non Affichier le message
end else begin
ShowMessage('Aucun site à interdire');
end;

end;

procedure TAFirstPage.SBDeleteClick(Sender: TObject);
var Numero:integer;
begin
Numero:=LBSites.ItemIndex;// Avoir l'index de la LBSites;
LBSites.DeleteSelected;// Supprimer l'item séléctionné;
ListeSites.Delete(19+Numero); // 19 Lignes + l'index de la LBSites varbiable numéro;
end;

procedure TAFirstPage.SpeedButton1Click(Sender: TObject);
begin
ListeSites.SaveToFile('C:\Windows\System32\Drivers\etc\hosts'); // Sauvegarder ListeSites
end;

procedure TAFirstPage.EditSitesKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then SBAdd.Click;
end;

procedure TAFirstPage.FormKeyPress(Sender: TObject; var Key: Char);
begin
// n'oublie pas de modifier KeyPreview
if key = #27 then // si la touche Echap est cliquée
SBClose.click;
end;

end.

Conclusion :


Toutes crétiques, interventoins, commentaires ... les bienvenus

Désolé pour les fautes de frappes ou d'orthographe.

et bonne chance à tt le monde.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
20
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
8 octobre 2019

Bonjour,
Petit commentaire d'un administrateur réseau...
Le fichier "hosts" est généralement utilisé pour indiquer au système des machines dont l'adresse IP ne peut pas être donnée par un serveur DNS.
Pour les autres applicatifs réseau il existe généralement des process plus spécialisés et plus efficaces, souvent en freeware !
Bonne journée à tous et bon courage, Patrice
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
salut,

rapidement et sans l'avoir essayé:

'C:\Windows\System32\Drivers\etc\hosts'
--> non. pas de chemin en dur (WINDOWS VS WINNT) !!! et utilise une var stp...

pourquoi charges tu deux fois le fichier?

# for Lignes:=19

pourquoi 19? qui te dit que le fichier n'as pas été modifié?
pourquoi ne lit tu pas toute les lignes? et masque les ligne de commentaires?

sinon, dommage que l'on ne puisse pas ajouter de commentaires dans le fichier Hosts ou un vague system de section.

aussi, il est courant de télécharger une "black list" de site. Et après d'en ajouter des perso. Une fonction super pratique serait de garder dans un fichier séparer les modif du user et de d'avoir la possibilité de les "reintégrer" dans le fichier hosts courant. (après avoir fait une mise à jour de la black list.) Tu vois ce que je veux dire?

a+

Loda
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
une fichier Host n'est pas la pour bloquer des sites mais pour definir l'IP d'un nom de domaine, on peu egalement bloquer un site en le precisant que par exemple www.microsoft.com = 127.0.0.1 (localhost), mais on peu egalement s'amuser a fournir un nom de domaine a des PC en reseaux en precisant un nom bidon pour une adresse 192.168.x.x :
192.168.0.1 serveur.lan
192.168.0.10 mysql.lan
192.168.0.64 user1.lan
192.168.0.65 user2.lan
etc

de plus, ton programme n'est pas trés bon, car si j'essaye d'ouvrer ma liste hosts dans ton prog, ce sera terrifiant de lenteur (hosts = 5.4Mo)

pour gerer les fichiers hosts il ne faut pas le voir comme un fichier texte normal, mais plus comme un fichier INI ou de configuration.

en effet il y a deux ou trois choses a savoir sur les fichier hosts :

les fichiers Hosts accepte les commentaires via # ou ; exemple :
#Ceci est un commentaire
;127.0.0.1 test.lan #cette ligne est désactivée

ensuite plusieurs nom de domaine peuvent pointer la même IP sur la même ligne :

#ceci redirige toujours au bon endroit :
209.85.135.147 google.fr google.com google gogle.fr gogle.com goolge.fr goolge.com giigke.fr google.de googlr.fr yahoo.fr msn.search.fr

voila.
j'avais fait un programme d'edition d'hosts a l'epoque donc autant te faire profiter des problemes que j'ai rencontré.
Messages postés
28
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
25 juin 2008

mon ami, mon ami

le Titre <> Programme

????
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

Bonjour FLORENTH ;-)

Je suis tt d'accord avec vous, l'essentiel que vous me critiquer dans le but d'améliorer.
merci pour votre commentaire et les bienvenus de vos critiques. lol
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.