efenim bir ders projesi için içerik filtreleme/engelleme application.ı yapmaktayım. sayfaynın engellenip engellenmeyeceğine karar veren algoritmam falan hazır ancak bir türlü açılmak istenen sayfaları nasıl kontrol ettirsem karar veremedim çünkü konuya hakim değilim.

her browser için ayrı ayrı eklenti yazmak bir seçenek. ama sayfanın engellenip engellenmeyeceğine karar veren programcığı web servis olarak çalıştırmam gerekir bu durumda ve browser eklentilerinde web servis kullanmak mümkün mü acaba? mümkünse nasıl?

veya direk bir desktop application hazırlamak olabilir. ama bir browserdan sayfa açılmak istendiği zaman benim bu application'ımın bundan nasıl haberi olcak o kısmı çözemedim. yani nasıl bir handler olmalı ki burda..

konuyla ilgili her türlü görüşlerinizi önerilerinizi bekliyorum efenim.

 

engellenecek siteler önceden girilecek dimi programa. yani kullanıcı gircek di mi ?

gozyakansakiz

engelli site listesini bir xml/dat/ini/vb dosyada tutup her guncellendiginde System32\drivers\etc altindaki hosts dosyasinin duzenlenmesini saglamak da bir secenek.
eklenen siteleri, hosts dosyasinin her satirina ekleyip 127.0.0.1'e yonlendirmek bir secenek olabilir.

sourlemonade

assert h nin fikrini söyleyecektim bende ama önce sorayım dedim. tebrikler asserth :)

gozyakansakiz

hocam o kısmı zaten hosts dosyasını kulalnarak dediğin gibi yapmayı düşünüyorum ancak mesele sayfanın engellenip engellenmeyeceğine karar vermekte.

yani kullanıcı açtı firefox.u www.eksisozluk.com yazdı enter'a bastığı anda benim bu kontrolü yaptırmam lazım kendi webservisimi kullanarak. ama işte burada tıkanıyorum.

liste tutmak projeme uymuyo, yani eğer bir sayfa daha önce analiz edildiyse tekrar etmicem zaten ama daha önce herhangi bir işlem yapılmamış sayfaları da kendi metotlarımla analiz etmem lazım. dolayısıyla sadece url based bi filtering olmıcak.

yazdığım cümleler birbirinden kopuk ve absürd olabilir, saat geç idare edin ltf :)

iterator

o zaman, muhtemelen netlimiter tarzi network trafigini izleyen bir sistem yazman gerekecek. boylece browser'dan bagimsiz da olacak. 80 port'una giden trafigi dinleyip baglanilan ip'leri reverse lookup ile resolve edebilirsin. (kullaniciya sorarken adres gosterebilmek icin, "google.com engellensin mi" gibi. bu sart olmayabilir de, browser'dan adres bilgisini almak gibi bir opsiyon oldugunu sanmiyorum.)
ki zaten, ip bazli bir engelleme daha cok isine yarayacaktir. birden fazla ip'ye sahip sitelerde sorun cikmamasi icin.
ilk aklima gelen boyle bir sistem oldu. daha pratik bir sey dusunursem cevap eklerim ya da mesaj atarim.

sourlemonade

network trafiğini izlemek için winpcap kullanabilirsin, çok karışık olmayan bir api'ı var. domain adını/url'i bulmak için de reverse lookup yerine http header'larına bakabilirsin böylece.
assert.h'nın dediği sadece bağlanılan ip'leri kontrol etmekten daha zor bir iş bu. artısı url'e ve içeriğe bakabilmen olur, algoritma karar verirken sanırım bunları da göz önünde bulunduruyor.

"hedef ip'yi/siteyi/url'i öğreneyim, sonra karar vereyim"in dezavantajı siteye ilk girişi engelleyememek olacak, yani "engellemek istiyor musunuz" sorusu ya da algoritmanın ilk sefer filtrelemeyi hesaplayıp hosts dosyasına eklemesi siteye ilk girişten sonra olacak, o ilk girişi bloke edemeyeceksin.

bir de, hangi dilde yazıyorsun bunu?

xanathar

öncelikle teşekkürler xanathar, hangi dilde yazacağıma daha tam karar vermedim ama java veya c#'ta yazabilirim. diğer dillerdeki tecrübem yetmez sanırım böyle bir işi yapmaya. veya çok lazım olursa kasıp her browser.a ayrı ayrı eklenti de yazmaya çalışabilirim.

benim şu ana kadar yaptığım kısımda zaten adresi verilen sayfanın içeriğini alıp karar verme mekanizması çalışır durumda. yani bu kısmı bi web servis olarak da koyabilirim. aslında temel olarak yapmak istediğim bu, yani kullanıcı browserdan bir sayfa açmak istediği zaman önce adres benim webservise gönderilsin, gelen cevaba göre açılsın veya engellensin.

ilk etapta kullanıcıya engellemek istiyormusun falan diye sormıcam, herşeye bahsettiğim karar verme servisi karar verecek.

iterator
1

mobil görünümden çık