Internetzugang blocken?
-
Hi,
meine Schwester ist viel zu viel im Netz, weswegen ich beauftragt wurde, ein Programm zu Schreiben, welches nur zeitlich begrenzten Internetzugang ermöglicht.
Hat jemand eine Idee, wie ich den Internetzugang blocken könnte? Betriebssystem ist Windows XP.
Danke!
-
Ist nen Router dazwischen?
Drück auf den Knopf davon ...
-
INTERFACE_HANDLE hInterface; // Creating the interface and associating it with // a local ip address INTERFACE_HANDLE hInterface; PfCreateInterface(0, PF_ACTION_DROP, PF_ACTION_DROP, FALSE, TRUE, &hInterface); // look this byte order for ip address!! BYTE localIp[] = {0,0,0,0}; //Hier am besten die IP Adresse von dem Netzweradapter der zum Router führt PfBindInterfaceToIPAddress(hInterface, PF_IPV4, localIp); // We go to add a filter. Forbid outgoing http traffic, for example. FILTER_HANDLE fHandle; // Fill the filter rule data PF_FILTER_DESCRIPTOR inFilter; inFilter.dwFilterFlags = FD_FLAGS_NOSYN; //always this value inFilter.dwRule = 0; //always this value inFilter.pfatType = PF_IPV4; //using ipV4 addresses inFilter.SrcAddr = localIp; //set local ip inFilter.SrcMask = (PBYTE)"\xff\xff\xff\xff"; //mask for local ip inFilter.wSrcPort = FILTER_TCPUDP_PORT_ANY; //any source port inFilter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY; inFilter.DstAddr = 0; //any destination inFilter.DstMask = 0; inFilter.dwProtocol = FILTER_PROTO_TCP; // Tcp protocol // Add the filter PfAddFiltersToInterface(hInterface, 1, &inFilter, 0, NULL, &fHandle); // Remove the filter PfRemoveFilterHandles(hInterface, 1, &fHandle); // Unbind and delete interface PfUnBindInterface(hInterface); PfDeleteInterface(hInterface);
-
Bei mir wird da nichts geblockt, wenn ich unter localIP meine IP
(192.168.109.19) eintrag
Den anderen Thread den es hier dazu mit einer funktionierenden Lösung mal
gab findet man nicht mehr.
-
-
Ich poste hier einfach mal den Abschnitt, der bei mir funktioniert:
INTERFACE_HANDLE interfaceHandle; FILTER_HANDLE filterHandle; PF_FILTER_DESCRIPTOR filter; PfCreateInterface(0, PF_ACTION_FORWARD, PF_ACTION_FORWARD, FALSE, TRUE, &interfaceHandle); unsigned long myIp = LongToIp("192.168.0.5"); PBYTE localIp = (PBYTE)&myIp; PfBindInterfaceToIPAddress(interfaceHandle, PF_IPV4, localIp); filter.dwFilterFlags = FD_FLAGS_NOSYN; filter.dwRule = 0; filter.pfatType = PF_IPV4; filter.wSrcPort = FILTER_TCPUDP_PORT_ANY; filter.wSrcPortHighRange = FILTER_TCPUDP_PORT_ANY; filter.wDstPort = FILTER_TCPUDP_PORT_ANY; filter.wDstPortHighRange = FILTER_TCPUDP_PORT_ANY; filter.fLateBound = 0; filter.dwProtocol = FILTER_PROTO_ANY; unsigned long destinationIp = LongToIp("0.0.0.0"); filter.DstAddr = (PBYTE)&destinationIp; filter.DstMask = (PBYTE)&destinationIp; in_addr inAddr; inAddr.S_un.S_un_b.s_b1 = ipByte1; inAddr.S_un.S_un_b.s_b2 = ipByte2; inAddr.S_un.S_un_b.s_b3 = ipByte3; inAddr.S_un.S_un_b.s_b4 = ipByte4; unsigned long sourceIp = LongToIp(inet_ntoa(inAddr)); filter.SrcAddr = (PBYTE)&sourceIp; filter.SrcMask = (PBYTE)&sourceIp; PfAddFiltersToInterface(interfaceHandle, 1, &filter, 1, &filter, &filterHandle); // blabla PfRemoveFilterHandles(interfaceHandle, 1, &filterHandle); PfUnBindInterface(interfaceHandle); PfDeleteInterface(interfaceHandle);Musst natürlich einiges anpassen.
MfG
-
kann man nicht automatisch die ip-adresse von diesem Computer ermitteln?
Also zum beispiel per ping oder so...
war nurn vorschlag.
-
Script-Styler, halt dich raus, das nichts mit der Frage hier zu tun.
-
Ok, funktioniert. Script go away....
