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.



  • Also bei mir klappts 😕

    //Edit

    Klick



  • 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....


Anmelden zum Antworten