InternetExplorer mit URL-Kontrolle

    • Offizieller Beitrag

    Dieser Browser kontrolliert, ob die eingegebene URL mit einem Array aus IP-Adressen übereinstimmt. Wenn ja, dann wird die entsprechende Seite nicht aufgerufen (Fehlermeldung).
    Dazu wird die vom Benutzer eingegebene URL erstmal in die IP-Adresse umgewandelt und dann erst verglichen, damit man die Kontrolle nicht einfach durch Eingabe der IP-Adresse umgehen kann.
    Das Array (im Quelltext kommentiert) kann beliebig erweitert werden.

    Spoiler anzeigen
    [autoit]


    #include<StaticConstants.au3>
    #include<GuiStatusBar.au3>
    #include<EditConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<IE.au3>
    #include<WindowsConstants.au3>
    Global Const $WS_EX_COMPOSITED = 0x2000000

    [/autoit] [autoit][/autoit] [autoit]

    $oIE = _IECreateEmbedded()

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate('IE-Kontrolle', 1024, 768, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_CLIPCHILDREN), $WS_EX_COMPOSITED)
    GUISetBkColor(0xDDDDDD)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel('Adresse', 4, 27, 55, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 9, 400, 0, 'Verdana')
    GUICtrlSetColor(-1, 0x888888)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)

    [/autoit] [autoit][/autoit] [autoit]

    $hURL = GUICtrlCreateInput('', 64, 25, 958, 20, $ES_WANTRETURN, $WS_EX_STATICEDGE)
    GUICtrlSetFont(-1, 9, 400, 0, 'Arial')
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateObj($oIE, 0, 48, 1024, 696)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)

    [/autoit] [autoit][/autoit] [autoit]

    $hStatus = _GUICtrlStatusBar_Create($hGUI)
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    _IENavigate($oIE, 'about:blank')
    GUISetState()
    GUIRegisterMsg($WM_SIZE, 'WM_SIZE')
    ControlFocus($hGui, '', $hURL)
    Global $oldURL = 'about:blank'
    Global $aBadURL[5] = ['193.99.144.85','','','',''] ; hier alle zu sperrenden IP-Adressen eintragen (z.B.: 1.Eintrag = http://www.heise.de)
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hURL
    $sURL = StringReplace(GUICtrlRead($hURL), 'http://', '')
    _IENavigate($oIE, $sURL, 0)
    EndSwitch
    $sURL = _IEPropertyGet($oIE, "locationurl")
    If StringLeft($sURL, 7) <> 'http://' Then $sURL = 'http://' & $sURL
    If StringRight($sURL, 1) <> '/' Then $sURL &= '/'
    $aURL = StringRegExp($sURL, '(http://){1}(.+?)/', 3)
    If IsArray($aURL) Then
    If $aURL[1] <> $oldURL Then
    $oldURL = $aURL[1]
    $bCheck = True
    _GUICtrlStatusBar_SetText($hStatus, 'Bitte warten...')
    If $aURL[1] <> 'about:blank' Then
    TCPStartup()
    $sIP = TCPNameToIP($aURL[1])
    TCPShutdown()
    Else
    $sIP = ''
    EndIf
    If $sIP <> '' Then
    For $i = 0 To UBound($aBadURL)-1
    If $sIP = $aBadURL[$i] Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Diese Seite darfst Du nicht aufrufen!')
    GUICtrlSetData($hURL, '')
    _IENavigate($oIE, 'about:blank')
    $bCheck = False
    ControlFocus($hGui, '', $hURL)
    Sleep(1000)
    ExitLoop
    EndIf
    Next
    If $bCheck Then
    If StringLeft($aURL[1], 7) <> 'http://' Then
    $sURL = 'http://' & $aURL[1]
    GUICtrlSetData($hURL, $aURL[1])
    EndIf
    _IENavigate($oIE, $aURL[1])
    If @error Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Beim laden der Seite ist ein Fehler aufgetreten!')
    Else
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    EndIf
    EndIf
    ElseIf $aURL[1] <> 'about:blank' Then
    Beep(400, 200)
    _GUICtrlStatusBar_SetText($hStatus, 'Diese Seite existiert nicht!')
    Else
    _GUICtrlStatusBar_SetText($hStatus, 'Fertig.')
    EndIf
    EndIf
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    _GUICtrlStatusBar_Resize($hStatus)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Edit: Script noch etwas geändert, damit auch der Umweg über eine Suchmaschine nicht funktioniert.

  • Versteh ich nicht ganz. Im Klartext: Das Programm soll von verschiedenen Ip Adressen im Lan Netzwerk einstellen, das man gewisse Seiten nicht aufrufen darf? Oder versteh ich da was falsch? ?(