Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INTERDIRE L'ACCÈS À CERTAIN SITES INTERNET


Information sur la source

Attention: ce code a été marqué comme suspect par un admin, il peut donc être dangereux.
Ce code a été laissé sur le site dans un but pédagogique, ne l'exécutez pas si vous ne comprenez pas son contenu!
Catégorie :Système Classé sous : hosts, StringList, interdire, Accès, sites Niveau : Débutant Date de création : 02/03/2008 Vu / téléchargé: 7 631 / 352

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • 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.
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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 02/03/2008 19:37:02

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

signaler à un administrateur
Commentaire de SOUMIA le 02/03/2008 21:43:32

mon ami, mon ami

le Titre <> Programme

????

signaler à un administrateur
Commentaire de f0xi le 02/03/2008 22:24:59 administrateur CS

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é.

signaler à un administrateur
Commentaire de Loda le 03/03/2008 09:21:44

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

signaler à un administrateur
Commentaire de hfr11 le 29/04/2008 11:04:57

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Interdire l'accès à un PC [ par cccm62 ] Bonjour,Mes questions: Je cherche des idées pour bloquer totalement l'accès à un PC sous XP. =&gt; des idées en + que le simple MDP au démarra Accès à la MFT (Master File Table) [ par ni69 ] Bonjour,Quelqu'un saurait-il comment accéder à la MFT (Master File Table) d'un disque NTFS via Delphi ?Je suis en train de développer un utilitaire de Vers une légalisation du Peer to peer ? [ par simonpelloquin ] Bonjour à tous,Vu sur le net : Certains de nos élus seraient en train de préparer un projet de loi pour étendre la redevance audiovisuelle aux heureux Accès aux Bases de Données impossible [ par ymazingerz ] Allô. J'ai téléchargé la version architecte de Delphi 2009 qui devait techniquement est pleinement fonctionnelle. Or, il m'est totalement impossible d utilisation du Semaphore pour un accès multi-utilisateurs à une Base des données [ par notrica ] SalutY-a-t'il la possibilité d'avoir un exemple concret pour ce qui est de l'uitilisation de Semaphore? Je n'y arrive pas malgré le tuto non argumenté Chemin d'accès d'un élément d'un ShellListView [ par PierreP ] je recherche comment obtenir le chemin d'accès d'un élément sélectionné dans un ShellListViewcela est très important, merci d'avance :) Datamodule et accès à partir d'une form [ par manudel ] Voilà, je voudrais avoir accès aux événements des objets figurant sur mon datamodule, mais je n'y arrive pas. J'ai l'erreur suivante : "le type de l'e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.