Re: IP auslesen
26.04.2003 14:08:21
Ramses
Hallo,das ist mit VBA, und meinen bescheidenen Mitteln :-), nur über einen kleinen Umweg zu erreichen, indem die Ausgabe der IP-Adresse in ein Textfile erfolgt.
Um das Makro beim öffnen deiner Datei zu starten, muss in das Workbook_Open Ereignis deiner Mappe
Private Sub Workbook_Open()
Start_Call_IP
End Sub
Option ExplicitPublic myPrivIp As String
Sub Start_Call_IP()
Application.OnTime Now() + TimeValue("01:00:00"), "Get_my_IP_and_send_Message"
End Sub
Sub Get_my_IP_and_send_Message()
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim TxtLines As Long, i As Long
'Für Office97 muss das Array "TextArr" als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim TextArr As Variant, myCmd As Variant, myIp As String
Dim ReadFile As String
'Export der IP-Adress in ein txt File
'Den Namen und Pfad bitte anpassen
ReadFile = "C:\myIP.txt"
'Schliessen einer geöffneten Datei
Close #1
'Abfragen der eigenen IP-Adresse und Ausgabe in die Datei
myCmd = Shell("cmd.exe /C ipconfig > C:\myIP.txt")
'1. Öffnen der Datei
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
TxtLines = 0
Do While Not EOF(1) ' Schleife bis Dateiende.
Input #1, Text1 ' Hilfsvariable zum einlesen verwenden
'Zähler hochzählen
TxtLines = TxtLines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1 ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim TextArr(TxtLines)
'Einlesen der Dateien in das Array
For i = 1 To TxtLines
Line Input #1, TextArr(i)
Next i
Close #1
'IP String auslesen
For i = 1 To TxtLines
'Mit "IP-Adresse" beginnt der String mit der eigenen IP
'Hast du noch eine zweite IP musst du den String anpassen
If InStr(1, TextArr(i), "IP-Adresse") Then
myIp = Trim(Right(TextArr(i), Len(TextArr(i)) - InStrRev(TextArr(i), ":", -1)))
End If
Next i
'Vergleichen der IP's
If myPrivIp = "" Then
'beim ersten Start
myPrivIp = myIp
Else
'Ip bereits vorhanden aber unterschiedlich
If myPrivIp <> myIp Then
myPrivIp = myIp
ActiveWorkbook.SendMail "dein.name@dein.provider", "Neue IP:" & myIp
End If
End If
Start_Call_IP
End Sub
Code eingefügt mit Syntaxhighlighter 1.16
Gruss Rainer