Web-Seite

  • Hallo,

    kann man eine Web Seite komplet Sperren so dass darauf nicht zugegriffen werden kann?
    Dies würde ich gerne dazu anwenden,um auf dem PC (Familien PC ,wo auch mein Sohn dran darf) web-inhalte/seiten zu sperren.

    LG Pceumel

  • da ist diese funktion mit drin webseiten zu sperren,aber ob dies auch im normalen browser üblich ist weiss ich nicht ihr der link ist aber noch im bau also noch nicht alle funktionen gehen so wie beim normalen browser wie speichern und so

  • weil die sperrfunktion nicht im Firfox oder im Internet explorder abgefragt wird über eine funktion aber ihr der code weil der browser selber ruft ja nicht die sperrungs.ini auf aber wenn du eine idee dazu hast wie firfox das lernen tut oder andere browser dann immer herr damit mit den script^^

    [autoit]

    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    ;Global Const $LVFI_PARAM = 0x0001
    ;Global Const $LVIF_TEXT = 0x0001
    ;Global Const $LVM_FIRST = 0x1000
    Global Const $LVM_GETITEM = $LVM_FIRST + 5
    ;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
    ;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140
    Dim $nCurCol = -1
    Dim $nSortDir = 1
    Dim $bSet = 0
    Dim $nCol = -1
    Dim $nr, $aSperrungdaten
    #Region ### START Koda GUI section ####
    $Form1 = GUICreate('Sperrung von Internet Seiten', 300, 300, 0, 0)
    GUISetIcon("Icon\Restricted.ico")
    GUISetBkColor(0xFFFFFF)
    $Input1 = GUICtrlCreateInput("", 0, 0, 300, 21)
    $Button = GUICtrlCreateButton("Sperren", 100, 25, 75, 21, 0)
    $Listview1 = GUICtrlCreateListView("Nr|Webseite|", 0, 50, 300, 250)
    GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
    $mnu = GUICtrlCreateContextMenu($Listview1)
    ;$mnu_edit = GUICtrlCreateMenuItem('Webseite Bearbeiten', $mnu)
    $mnu_del = GUICtrlCreateMenuItem('Webseite Löschen', $mnu)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Local $SperrungINI = @ScriptDir & "\Sperrung.ini"
    If Not FileExists($SperrungINI) Then
    IniWrite($SperrungINI, "Sperrung", 10000, "www.Torrent.to")
    IniWrite($SperrungINI, "edit", 10000, "")
    IniWrite($SperrungINI, "Sperrung", 10001, "www.speedtorrent.to")
    IniWrite($SperrungINI, "edit", 10001, "")
    IniWrite($SperrungINI, "Sperrung", 10002, "www.Bitreactor.to")
    IniWrite($SperrungINI, "edit", 10002, "")
    IniWrite($SperrungINI, "Numbers", "last", 10002)
    EndIf
    Global $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    Local $lastNum = IniRead($SperrungINI, "Numbers", "last", 9999)
    _FillListView()
    GUISetState(@SW_SHOW, $Form1)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $lastNum += 1
    $Input = GUICtrlRead($Input1)
    IniWrite($SperrungINI, "Numbers", "last", $lastNum)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input)
    IniWrite($SperrungINI, "edit", $lastNum, "")
    GUICtrlSetData($Input1, "")
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _FillListView()
    Case $mnu_del
    $index = _GUICtrlListView_GetSelectedIndices($Listview1)
    $del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
    IniDelete($SperrungINI, "Sperrung", $del_Key)
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _GUICtrlListView_DeleteItemsSelected($Listview1)
    Case $Listview1
    $bSet = 0
    $nCurCol = $nCol
    GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
    DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
    EndSwitch
    EndSwitch
    WEnd
    Func _FillListView()
    _GUICtrlListView_DeleteAllItems($Listview1)
    If $lastNum = 9999 Then Return
    For $i = 1 To UBound($aSperrung) - 1
    GUICtrlCreateListViewItem($aSperrung[$i][0] & '|' & $aSperrung[$i][1], $Listview1)
    Next
    EndFunc
    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $Listview1
    If Not IsHWnd($Listview1) Then $hWndListView = GUICtrlGetHandle($Listview1)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_RCLICK
    Return $GUI_RUNDEFMSG
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc
    Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
    Local $nSort
    If $nColumn = $nCurCol Then
    If Not $bSet Then
    $nSortDir = $nSortDir * - 1
    $bSet = 1
    EndIf
    Else
    $nSortDir = 1
    EndIf
    $nCol = $nColumn
    $val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
    $val2 = GetSubItemText($Listview1, $nItem2, $nColumn)
    If $nColumn = 2 Then
    $val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
    $val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
    EndIf
    $nResult = 0
    If $val1 < $val2 Then
    $nResult = -1
    ElseIf $val1 > $val2 Then
    $nResult = 1
    EndIf
    $nResult = $nResult * $nSortDir
    Return $nResult
    EndFunc
    Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
    Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
    DllStructSetData($stLvfi, 1, $LVFI_PARAM)
    DllStructSetData($stLvfi, 3, $nItemID)
    Local $stBuffer = DllStructCreate("char[260]")
    $nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));
    Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")
    DllStructSetData($stLvi, 1, $LVIF_TEXT)
    DllStructSetData($stLvi, 2, $nIndex)
    DllStructSetData($stLvi, 3, $nColumn)
    DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
    DllStructSetData($stLvi, 7, 260)
    GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));
    $sItemText = DllStructGetData($stBuffer, 1)
    $stLvi = 0
    $stLvfi = 0
    $stBuffer = 0
    Return $sItemText
    EndFunc

    [/autoit]
  • zum sperren von webinhalten ist autoit aus vielen Gründen ungeeingnet.

    Es gibt aber vielen andere Lösungen, die sehr einfach sind:

    1. Am schönsten mit vielen Features geht das mit einem Proxy Server. (z.B. Squid) Aber ist für ein privates kleines Netz wohl Überzogen.
    2. in einigen Routern kann man mittlerweile schon einige URL`s zum sperren eintragen. Wenn es im router nicht vorgesehen ist geht es meistens trotzdem, solange man per telnet oder ssh auf dem Router kommt und die DNS Einträge abändern kann. In vielen Router ist dnsmasq oder pdnsd als DNS eingesetzt. Dann kann man dort einfach die URL´s eintragen.. Was für einen Router hast Du denn?
    3. Wenn die beiden nicht in Frage kommen, kann Du einfach die URL´s in die Datei
    C:\WINDOWS\system32\drivers\etc\hosts
    eintragen.. z.B. so:

    Spoiler anzeigen

    # Copyright (c) 1993-1999 Microsoft Corp.
    #
    # Dies ist eine HOSTS-Beispieldatei, die von Microsoft TCP/IP
    # für Windows 2000 verwendet wird.
    #
    # Diese Datei enthält die Zuordnungen der IP-Adressen zu Hostnamen.
    # Jeder Eintrag muss in einer eigenen Zeile stehen. Die IP-
    # Adresse sollte in der ersten Spalte gefolgt vom zugehörigen
    # Hostnamen stehen.
    # Die IP-Adresse und der Hostname müssen durch mindestens ein
    # Leerzeichen getrennt sein.
    #
    # Zusätzliche Kommentare (so wie in dieser Datei) können in
    # einzelnen Zeilen oder hinter dem Computernamen eingefügt werden,
    # aber müssen mit dem Zeichen '#' eingegeben werden.
    #
    # Zum Beispiel:
    #
    # 102.54.94.97 rhino.acme.com # Quellserver
    # 38.25.63.10 x.acme.com # x-Clienthost

    127.0.0.1 localhost
    192.168.123.1 https://autoit.de/www.web.de

    hier wird z.B. https://autoit.de/www.web.de auf die lokale adresse meines routers umgeleitet.
    Nachteil, es muss auf jeden Rechner im Netz gemacht werden und diese Methode kann man leicht umgehen, wenn man weiß wo der Eintrag ist :rolleyes: Das ganze könnte man natürlich mit autoit umsetzen.

    schöne Grüße

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---