Blokowanie dostępu do danej strony internetowej w czasie rzeczywistym

0

Witam, poszukuję sposobu dzięki któremu w swoim programie będę mógł zaimplementować funkcję blokowania danej strony/stron (po ich adresie ip) na komputerze, tak żeby nie działała na wszystkich możliwych przeglądarkach. Sposób z dodawaniem adresów do pliku hosts byłby wystarczający, gdyby nie było konieczności restartu systemu dla zastosowania zmian. Zależy mi na tym, żeby gdy przykładowo kliknę przycisk "Blokuj" dostęp do strony został zablokowany, a gdy kliknę "odblokuj" został odblokowany :-)

Nie proszę o gotowy kod czy coś w tym stylu, jedynie o wskazówki jak to zrealizować :-) Najlepej w Delphim albo C++

0

Daj jakiś interwał w js, który sprawdza czy user ma być zablokowany. Jak tak to niech np.: odświeża stronę.

0

Z plikiem hosts coś kręcisz, bo nic nie trzeba resetować. Dodajesz tam wpis i działa.

0

Jemu pewnie chodzi o to że bez odświeżania strony ma zadziałać.

A do czego to ma służyć ?

0

A jest możliwość żeby ten plik nie działał? Dodaję do niego wpisy (ręcznie) a mimo to strony działają sobie w najlepsze (nawet po odświeżeniu lub wyłączeniu przeglądarki). Ideałem by było jakby użytkownik nie musiał odświeżać tej strony, tylko w wypadku pobierania przez stronę jakiś danych z serwera, strona się blokowała czy coś w tym stylu. A w czym chcę to zastosować? To ma być czymś w rodzaju kontroli rodzicielskiej :-) Tylko na trochę innych zasadach. Wiem że są pakiety antywirusowe, bądź też programy które coś podobnego robią, ale wolałbym to sam napisać;]

0

To napisz łaskawie jaki plik edytujesz i co do niego wpisujesz. Bo ten plik najzwyczajniej zawsze działa ;]

0

plik hosts z katalogu C:\Windows\System32\drivers\etc edytuję w notatniku i to jest jego treść:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost




127.0.0.1	acdid.acdsystems.com

127.0.0.1 www.onet.pl
127.0.0.1 onet.pl
127.0.0.1 genuine.microsoft.com
127.0.0.1 mpa.one.microsoft.com
127.0.0.1 sls.microsoft.com

Po wprowadzeniu zmian zapisuję i tyle.

0

O, kolejny z pirackim oprogramowaniem.

Praktycznie nie zrobisz czegoś takiego:

Ideałem by było jakby użytkownik nie musiał odświeżać tej strony, tylko w wypadku pobierania przez stronę jakiś danych z serwera, strona się blokowała czy coś w tym stylu.

Owszem, mógłbyś, ale to będzie łatwo zdjąć.
Cokolwiek napiszesz - będzie to łatwo zdjąć. Jak skorzystasz z dobrego programu zewnętrznego to już niekoniecznie.

Najprościej będzie jednak zepsuć routing do określonych IP (mówiłeś, że bardziej Cię interesuje IP niż domeny) w konfiguracji routera. Wtedy też inny komputer podłączony do sieci także nie będzie miał dostępu do określonej strony (nie, żeby nie dało się tego obejść i tak).

0
dzek69 napisał(a):

O, kolejny z pirackim oprogramowaniem.

Praktycznie nie zrobisz czegoś takiego:

Ideałem by było jakby użytkownik nie musiał odświeżać tej strony, tylko w wypadku pobierania przez stronę jakiś danych z serwera, strona się blokowała czy coś w tym stylu.

Owszem, mógłbyś, ale to będzie łatwo zdjąć.
Cokolwiek napiszesz - będzie to łatwo zdjąć. Jak skorzystasz z dobrego programu zewnętrznego to już niekoniecznie.

Najprościej będzie jednak zepsuć routing do określonych IP (mówiłeś, że bardziej Cię interesuje IP niż domeny) w konfiguracji routera. Wtedy też inny komputer podłączony do sieci także nie będzie miał dostępu do określonej strony (nie, żeby nie dało się tego obejść i tak).

Korzystać z tego będzie osoba która i tak nie będzie tego potrafiła zdjąć, dlatego możesz napisać ten swój sposób. O routingu wiem, ale to odpada, bo zależy mi żeby program był hmm "mobliny" :-)

0

Możesz też zepsuć routing lokalnie (polecenie "route" w Windows).

0

@kulabum: jeżeli interesuje Ciebie rozwiązanie programowe to mój nie do końca doskonały kod jest w różnych załącznikach umieszczonych w wątku Blokowanie internetu - niestety ma on taką wadę, że po wyłączeniu programu sypią się te które korzystają z zahookowanych funkcji dla socketów i trzeba owe aplikacje restartować. Poza tym dla zablokowanej strony otwarcie zostanie faktycznie zablokowane przy pierwszym wyświetleniu w IE, ale dla Opery dopiero na przykład otwarcie zablokowanej lub jakiejkolwiek innej strony i później znowu otwarcie zablokowanej powoduje prawidłowe działanie, później jest wszystko ok. Także kod musiał byś sobie dopracować, ale nie jest on super skomplikowane, a Delphi to przystępny według mnie język, więc możesz pokombinować, bo kod jest dostępny i można robić z nim co się chce, a nie korzysta z płatnych modułów madshiego. Tylko jeżeli dopracujesz moje rozwiązanie i je wykorzystasz to należało było o tym wspomnieć w creditsach.

0

Połączenie pomysłu @Rev o wykorzystaniu route do zablokowania IP wraz z ubijaniem @olesio istniejących połączeń gdy dodajemy adresy wydaje się być wręcz idealne :)

Tak mi jeszcze jeden pomysł przyszedł do głowy. Tyczy się nie tylko przeglądarek internetowych ale też generalnie tych programów gdzie możemy ustawić PROXY. Może by postawić lokalnie serwer PROXY i przekierować wszystko przez niego. Wtedy mamy pełną kontrolę w czasie rzeczywistym. Nie wiem na ile takie rozwiązanie jest sensowne, czy to nie przypadkiem overkill. Ale jeśli by się okazało, że wystarczy nie wiele i można wykorzystać gotowe klocki to kto wie...

0

Dla ścisłości, bo @Rev spojrzał na pierwszą wersję zaproponowanego rozwiązania, które mimo iż działa jest oczywiście mało opatymalne. Nie precyzyjnie też napisałem. a chodziło mi w mojej pierwszej odpowiedzi w tym wątku o kod załączony dokładnie do posta pod adresem: Blokowanie internetu i ów kod działa z podanymi przeze mnie zastrzeżeniami. A że zakłada on Hook na funkcje: send, recv, WSASend i WSARecv to działa dopiero w momencie ich wywołania przez dowolną aplikację.

1 użytkowników online, w tym zalogowanych: 0, gości: 1