Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE | VB-Versionen: VB6 | 11.06.08 |
Download der aktuellesten Pattern-Datei von TrendMicro Mit diesem Code lässt sich immer die aktuellste Virus-Pattern-Datei von TrendMicro downloaden. | ||
Autor: Richard Mittelstädt | Bewertung: | Views: 11.394 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Aufgabenstellung: Es soll jederzeit die aktuelle Pattern-Datei mit den neuesten Virendefinitionen von TrendMicro heruntergeladen werden.
Problem: Der Dateiname des ZIP-Files ändert sich täglich
Lösung: TrendMicro bietet eine ASP-Webseite an, in der der aktuelle Download-Link zu der Pattern-Datei vorhanden ist. Wir brauchen daher "lediglich" die ASP-Seite downloaden und nach dem Download-Link zur Pattern-Datei durchforsten. Das Zip-File beginnt hierbei immer mit lpt... (bspw. lpt318.zip).
Hier nun der Code, der die ASP-Seite herunterlädt, lokal speichert und nach dem Link zur Pattern-Datei sucht:
' benötigte API-Deklaration Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" ( _ ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long
' ASP-Seite downloaden und aktuelles Pattern-ZipFile ermitteln Dim sLocalFile As String Dim nResult As Long Dim sURL As String Dim sPatternLink As String ' URL der ASP-Datei sURL = "http://www.trendmicro.com/download/viruspattern.asp" ' Lokale Datei sLocalFile = Environ$("TEMP") If Right$(sLocalFile, 1) <> "\" Then sLocalFile = sLocalFile & "\" sLocalFile = sLocalFile & "viruspattern.asp" ' Datei zuvor löschen, fals vorhanden On Error Resume Next Kill sLocalFile On Error Goto 0 ' Datei downloaden und lokal speichern nResult = URLDownloadToFile(0, sURL, sLocalFile, 0, 0) If nResult = 0 Then ' jetzt Datei-Inhalt in String-Variable einlesen Dim sBuffer As String Dim F As Integer F = FreeFile Open sLocalFile For Binary As #F sBuffer = Space$(LOF(F)) Get #F, , sBuffer Close #F ' jetzt den Inhalt nach dem Zip-File durchforsten Dim nPos As Long Dim sTemp As String ' nach lpt suchen nPos = InStr(1, sBuffer, "lpt", vbTextCompare) If nPos > 0 Then ' jetzt den Link extrahieren nPos = InStrRev(sBuffer, Chr$(34), nPos) If nPos > 0 Then sTemp = Mid$(sBuffer, nPos + 1) nPos = InStr(sTemp, Chr$(34)) If nPos > 0 Then sPatternLink = Left$(sTemp, nPos - 1) End If End If End If Screen.MousePointer = 0 If Len(sPatternLink) > 0 Then ' Pattern-Link anzeigen If MsgBox("Pattern-Datei: " & sPatternLink & vbCrLf & "Jetzt downloaden?", _ vbQuestion Or vbYesNo) = vbYes Then ' Pattern-Datei downloaden Screen.MousePointer = 11 sLocalFile = App.Path & "\" & Mid$(sPatternLink, InStrRev(sPatternLink, "/") + 1) nResult = URLDownloadToFile(0, sPatternLink, sLocalFile, 0, 0) Screen.MousePointer = 0 If nResult = 0 Then MsgBox "Downlaod erolgreich" & vbCrLf & _ "Datei wurde ordnungsgemäß heruntergeladen!", vbInformation Else MsgBox "Beim Download ist ein Fehler aufgetreten!", vbCritical End If End If Else MsgBox "Leider konnte in der ASP-Seite kein Download-Link gefunden werden!", _ vbInformation End If Else Screen.MousePointer = 0 MsgBox "Fehler beim Versuch die ASP-Seite herunterzuladen!", vbCritical End If