WinFuture-Forum.de: Hostblock - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Hostblock Hosts simpel blocken!


#1 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 22:10

Sicher kennen alle von uns die ganzen Anleitungen im Netz ala "Werbung per HOSTS blockieren". Es gibt auch vorgefertigte HOSTS-Dateien im Netz, aber es feht nach wie vor eine komfortable und vor allem eine für Laien verständliche Möglichkeit, die HOSTS-Datei zu bearbeiten. An der Stelle setzt mein Hostblock an.

Funktionen:
-HOSTS-Datei öffnen und Hosts, die blockiert werden, anzeigen
-Hosts zur Blockliste hinzufügen
-Hosts aus der Blockliste entfernen
-HOSTS-Datei wieder abspeichern (dabei gehen KEINE EINTRÄGE VERLOREN)
-Blockliste im-/exportieren

Download:
http://kirillst.ki.funpic.de/windows/hostb.../hostblockg.exe

Quellcode (Turbo Delphi IDE Projekt):
http://www.kirills-t...ck%20Source.zip

Das übliche "keine Weitergabe, wenn modifiziert und nur unter Erwähnung meinerselbst".

Dieser Beitrag wurde von Kirill bearbeitet: 24. Februar 2007 - 12:49

Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

Anzeige



#2 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 23. Februar 2007 - 22:33

Dir ist bewußt, dass du damit jeglichen(!) Netzwerkzugriff verlangsamst, also nicht nur HTTP(S)-Requests?

Abgesehen davon ist der Sinn fraglich, die Domains der Werbemacher ändern sich ständig, was auf die Dauer auch noch einen immensen Aufwand darstellt, da keine RegEx genutzt werden können.

Ist zwar schön, wenn jemand was codet, dennoch ist in meinen Augen Software wie Adblock oder Proxies wie Privoxy der Vorzug zu geben.

Dieser Beitrag wurde von ph030 bearbeitet: 23. Februar 2007 - 22:34

0

#3 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 22:37

Wat heisn hier verlangsamen? In der HOSTS-Datei ist schon per Standardeinstellungen ein Eintrag drin, nämlich der Localhost. Im Gegenteil wird Netzwerkzugriff eher beschleunigt, da DNS-Anfragen gleich lokal aufgelöst werden, statt dass man darauf noch warten muss.

So schnell ändern sich die Domains übrigens auch nicht. Ich surf per Hosts schon seit langem werbefrei. Ausserdem verlangsamen eher Proxys den Netzwerkzugriff, nicht die HOSTS-Datei.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#4 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 23. Februar 2007 - 22:52

Zitat

Wat heisn hier verlangsamen?
Also, ich mag mich irren - glaub ich aber nicht - und die Hosts unterstützt RegExp. Wenn ich recht habe, möchtest du mir also weismachen, das eine Liste mit Länge x>2, die sich nicht ordentlich durch * oder ? beschreiben lässt, schneller abgearbeitet ist, als eine passende RegEx?

Zitat

Im Gegenteil wird Netzwerkzugriff eher beschleunigt, da DNS-Anfragen gleich lokal aufgelöst werden, statt dass man darauf noch warten muss.
Das mag für eine geringe Anzahl Zeilen praktikabel sein, da die Ad-Domains aber in die Tausende gehen, ist in der Regel eine richtige Anfrage schneller. Dazu gab's übrigens mal eine - zugegeben sehr lange, aber auch sehr gute - Diskussion, sollte sich via Google finden lassen.

Zitat

Ich surf per Hosts schon seit langem werbefrei.
Das bestreite ich ja auch gar nicht, nur finde ich den Aufwand nicht gerechtfertigt.

Zitat

Ausserdem verlangsamen eher Proxys den Netzwerkzugriff
Was zwar stimmt, allerdings in großten Teilen bei diesem Thema zu vernachlässigen ist.

BTW, logischerweise funktioniert dein Programm nicht auf einem ordentlichen System, mangels Rechten, ergo müsste man für jeden Eintrag das Ding auch noch als Admin starten, was mindestens ich nicht machen würde, solange der Code noch nicht frei zugänglich ist.
0

#5 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 23:01

Erläuter mal RegExp, weiss net ganz, was du meinst. Was ich jedenfalls weiss ist, dass so ab 130kB Grösse der Namensauflösungsdienst anfängt zu hängen. Bei den 10kB, die ich im Moment habe (was aber nach wie vor eine gute Menge von Einträgen sind), ist das unkritisch.

Thema Aufwand: ich finde den Aufwand, ein Hintergrundprogramm zu haben oder meinen Netzwerkverkehr filtern zu lassen nicht gerechtfertigt, da das jedes Mal geschieht. Einen Host einzutragen ist a) einmalig und b) eine schnelle Sache.

Dass das Programm ohne Adminrechte nicht funzt, liegt halt in der Natur der Sache: Eintrag in eine Windowsdatei. Aber ein Programm als Admin starten ist an sich eine Sache von wenigen Sekunden.
Kannst dir den Hostblocker jedenfalls mit dem Procmon anschauen. Der versucht tatsächlich nur, die HOSTS zu lesen/schreiben. Ansonsten pack ich keine Dateien an.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 23. Februar 2007 - 23:09

Ich halte mich mal aus der Diskussion raus, da ich nicht so fit in diesem Thema bin.

Eine Frage dazu, da ich dass zur Zeit auf meinem aktuellen System nicht überprüfen kann.

Wie liest du den Pfad der hosts Datei aus?
Dir ist nämlich hoffentlich bewusst, dass sie auch woanders liegen kann...

Rika hat da mal ein paar interessante Scripte veröffentlicht, die die hosts-Datei nach "c:\windows\etc\hosts" verschieben.
0

#7 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 23. Februar 2007 - 23:12

Zitat

Erläuter mal RegExp, weiss net ganz, was du meinst.
RegularExpressions -> Google, Wikipedia

Zitat

ch finde den Aufwand, ein Hintergrundprogramm zu haben oder meinen Netzwerkverkehr filtern zu lassen nicht gerechtfertigt, da das jedes Mal geschieht.
Privoxy braucht bei mir ~1,3MB Speicher, dafür filtert es aber alles raus und ich bekomme eine Meldung, wenn etwas nicht stimmen sollte. Dein Filter versagt ja spätestens dann, wenn die Werbung von der selben Seite kommt und das gibt es immer noch zu hauf - ganz abgesehen davon, dass es mittlerweile immer mehr Ad-Provider gibt, die direkt über eine IP angesprochen werden.

Zitat

Der versucht tatsächlich nur, die HOSTS zu lesen/schreiben. Ansonsten pack ich keine Dateien an.
Vertrauen ist gut...sicher, könnte man das kontrollieren, aber welcher ONU macht das schon und sich dann auf Aussagen fremder verlassen, wäre mir unrecht. Ich unterstelle dir hiermit nichts böses, sondern möchte nur auf die allgemeine Gefahr hinweisen, die von solchen Programmen ausgehen kann(!).

Dieser Beitrag wurde von ph030 bearbeitet: 23. Februar 2007 - 23:13

0

#8 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 23:13

Es wird der Standardpfad genommen. Kannst mir gern sagen, wo der Ort in der Registry steht und ich werd den aus der Registry auslesen. Oder gib mir den Script, da wird das sicher auch stehen.
Aber welchen Sinn soll es haben, die nach C:\windows\etc\hosts zu schieben?
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#9 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 23. Februar 2007 - 23:15

Zitat

Aber welchen Sinn soll es haben, die nach C:\windows\etc\hosts zu schieben?
Ein übersichtlicheres Verzeichnis als system(32) zu haben? Dem unbedarften Skriptkiddie eine Hürde zu setzen? Etc.pp.
0

#10 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 23:15

@Ph: Thema Vertrauen. Ich mei net "Vertraue mir". Ich mei "Lass das Teil ohne Adminrechte laufen und schau ihm beim Arbeiten mit Procmon zu".
Thema Proxy: ich mein, dass du einerseits meinst, die HOSTS-Datei würd den Verkehr verlangsamen, andererseits preist du nen Proxy an, der den Verkehr tatsächlich filtert und also verlangsamt. Also widersprichst du dir selbst.
Ausserdem ist das nicht mein Filter, das ist MS' Filter. Mein Verdienst besteht draus, eine GUI dafür zu schreiben.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#11 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 23. Februar 2007 - 23:20

Zitat

Thema Proxy: ich mein, dass du einerseits meinst, die HOSTS-Datei würd den Verkehr verlangsamen, andererseits preist du nen Proxy an, der den Verkehr tatsächlich filtert und also verlangsamt. Also widersprichst du dir selbst.
Hast du einen solchen Proxy mal benutzt? Ich würde sagen nein, sonst wüßtest du, dass der Speedverlust marginal ist, dafür der Zugewinn an Möglichkeiten dein Programm/MS Möglichkeiten bei weitem übersteigt.
0

#12 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 23. Februar 2007 - 23:25

Ich meine die Scripte sind hier zu finden.
Windows - Sicher Konfiguriert!

Den Sinn hat ph030 schon erläutert.

Bevor ich's vergesse...

Zitat

Quellcode wollt ich veröffentlichen, wenn er fertig ist. Sprich wenn Hostblock den RTM-Status erreicht hat.

Eigentlich sollte ich das nicht machen, aber ich lasse das nochmal durchgehen, da du ihn ja noch veröffentlichen willst.

In diesem Forum geht es - wie der Name schon sagt - um die Programmierung.
Bei direkter Veröffentlichung deines Quellcodes würdest du erheblich schneller den RTM Status erreichen, da man einige Fehler erst im Quellcode findet. Zudem würdest du sicherlich noch einige Tipps zu deiner Programmiertechnik bekommen, die auch in die RTM einfließen könnten.
0

#13 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 23. Februar 2007 - 23:46

Hm, hast recht. Ich habs net gemacht, da ich dacht, ich arbeite im Moment noch dran und hab keine Lust, den Quellcode alle paar Minuten neu zu packen und raufzuladen, aber du hast recht.

Der momentane Code ist unter http://www.kirills-t...ck%20Source.zip zu finden.

@Ph030: ob RegExp unterstützt wird, ist hier net mein Verdienst. Ich schreibe keine Filterengine, ich mach ne GUI für die HOSTS-Datei. Könnt sogar sein, dass dort Wildcards genommen werden.

Dieser Beitrag wurde von Kirill bearbeitet: 24. Februar 2007 - 00:59

Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#14 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 24. Februar 2007 - 10:45

Um nicht nur große Töne zu spucken, habe ich mal den Quellcode überflogen.

Wenn ich das richtig sehe, hast du bisher noch mit keinem Wort erwähnt, dass du das mit der Borland (wie auch immer die richtig heißt) IDE gemacht hast. Wäre schön, dass zu erwähnen.

Unschön ist, dass du das alles in einer Klasse gemacht hast.
Das wird eine Wartung und Weiterentwicklung nicht einfach machen.

Man sollte die Logik eines Programmes von seiner eigentlichen GUI trennen. Dadurch kannst du in Zukunft, wenn du dich mal dafür entscheiden solltest, die GUI verändern oder ganz austauschen, ohne dass du die Logik, das eigentliche Programm anfassen musst. Bei Interesse schau dir mal das MVC-Paradigma an.

Mit dem Hintergrund, dass man den Pfad der Hosts Datei ändern kann, wie würde das in deinem Quellcode aussehen?
Ich müsste das an zwei Stellen ändern! Ziemlich unschön, nicht wahr?
Aber auch Meldungen, wie "No host given!" müsstest du an mehreren Stellen ändern, wenn du dich dafür entscheiden solltest.

Ansonsten hätte ich glaub ich nichts mehr zu meckern. :)
Dein Algorithmus zum Speichern und Laden der Hosts schaut gut aus.

Ein kleines nettes Feature würde mir noch einfallen.
Wie wäre es mit einer automatischen Zuweisung von IP und Hostname (Stichwort nslookup)? Wenn jemand eine IP-Adresse eingibt, könnte parallel der Hostname dieser IP herausgefunden werden.

Ach und übrigens...ich kann kein Pascal :(
0

#15 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 24. Februar 2007 - 12:46

In der aktuellen Version wird der Pfad zur HOSTS nur ein Mal ermittelt und in eine Variable gespeichert.
Ich hab aus dem hier verlinkten Thread nicht rausziehen können, wie man denn den Ort der HOSTS ändert, aber ich hab eine WinAPI-Erkennung des Windowsordners eingebaut, für Leute, die ihr Windows auf E oder sonst was haben.
Wegen Klassen, ist es, wie in Java, so, dass wenn man ein Mehrklassenprojekt kompiliert, eine Datei pro Klasse entsteht? Wenn ja, dann kommt das nicht in die Tüte: ich will eine kompakte eine-Datei-Anwendung.
Wegen IP ermitteln, hört sich gut an. Könntest du mir zB deine HOSTS geben (in der Annahme, dass du sowas hast)? Würde beim Testen helfen.
Hab übrigens beschlossen, dem Programm doch den RTM-Status zu geben.
Seite
Download
Den Quellcode habe ich gestern glaub ich komplett neu hochgeladen gehabt.

Dieser Beitrag wurde von Kirill bearbeitet: 24. Februar 2007 - 12:56

Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0