[ mica99 @ 15.02.2012. 15:05 ] @
Probao sam da napravim program koji ce zabraniti priistum odedjenim sajtovima.
Program radi na onu foru upisuje zabranu u Hosts file. Naisao sam na problem sa Avira antivirus, kupljena verzija jer na onu free radi ok.
Na kupljenu verziju ima zabranu na menjanje hosts fajla tako da moram rucno da joj u firewall cekiram opciju da mom programu omoguci promenu hosts fajla.
Pogledao sam dosta programa na netu koji rade iste funkcije, tj. zabranu sajtovima neki rade sa hosts fajlovima , ali vecina rade na neki nepoznat nacin;
ili kao neka vrsta firewall-a samo sto mi nije jasno da kad se deinstalira , zabrana i dalje postoji.
Pproverio sam i sa RegSnap da skeniram promene u registry i nisam uocio nikakve promene osim to sto upisuje svoja podesavanaj.
Ima li neko ideju kako ti programi uopste rade?
Moje misljenje je da je to neka vrsta firewall-a.

I drugo pitanje je ima li neko primer firewall-a?

ja sa nesto radio i on lepo radi sa win XP , ali to meni nista ne znaci:

uses ActiveX , ComObj....

Const
NET_FW_PROFILE_DOMAIN = 0;
NET_FW_PROFILE_STANDARD = 1;
NET_FW_IP_VERSION_ANY = 2;
NET_FW_IP_PROTOCOL_UDP = 17;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_SCOPE_ALL = 0;
NET_FW_SCOPE_LOCAL_SUBNET = 1;

procedure addApplicationToFirewall(EntryName:string;ApplicationPathAndExe:string);
var
fwMgr,app,port:OleVariant;
profile:OleVariant;
begin
fwMgr := CreateOLEObject('HNetCfg.FwMgr');
profile := fwMgr.LocalPolicy.CurrentProfile;
app := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
app.ProcessImageFileName := ApplicationPathAndExe;
app.Name := EntryName;
app.Scope := NET_FW_SCOPE_ALL;
app.IpVersion := NET_FW_IP_VERSION_ANY;
app.Enabled :=true;
profile.AuthorizedApplications.Add(app);
end;

procedure addPortToFirewall(EntryName:string;PortNumber:Cardinal);
var
fwMgr,port:OleVariant;
profile:OleVariant;
begin
fwMgr := CreateOLEObject('HNetCfg.FwMgr');
profile := fwMgr.LocalPolicy.CurrentProfile;
port := CreateOLEObject('HNetCfg.FWOpenPort');
port.Name := EntryName;
port.Protocol := NET_FW_IP_PROTOCOL_TCP;
port.Port := PortNumber;
port.Scope := NET_FW_SCOPE_ALL;
port.Enabled := true;
profile.GloballyOpenPorts.Add(port);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CoInitialize(nil);
addApplicationToFirewall('Moja Aplicacija','C:\Moja Aplikacija.exe');
CoUninitialize;
end;

[ reiser @ 15.02.2012. 16:08 ] @
Svaki iole ozbiljan firewall instalira svoj NDIS driver, i preko njega filtrira internet traffic.

Ovaj kod koji si ti okacio nema mnogo veze sa firewallom, vec je skripta koja instalira rule u Windowsov firewall. :)

Inace, ne znam za drugi nacin blokiranja accessa sajtovima osim preko /etc/hosts fajla.

[Ovu poruku je menjao reiser dana 15.02.2012. u 19:20 GMT+1]
[ Milan Milosevic @ 26.02.2012. 19:15 ] @
skini NetBlock.pas sa neta tu imas valjda ono sto ti treba.
Kod mene lepo radi, ali nisam bas razvijao program do detalja, ali mislim da ce da posluzi.