Anzeige
Archiv - Navigation
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

IP auslesen

IP auslesen
26.04.2003 13:17:19
Jonny
Hallo ihr göttlichen Excel-Experten
Erstmal Danke für die viele Hilfe die von euch kam.
Mein Problem heute, ich möchte meine aktuelle IP-Nr. auslesen und per E-Mail verschicken. Ich dachte mir so 1x am Tag (bestimmte Uhrzeit), oder alle 2.Std mit config.dat (ist die IP neu,dann E-Mail - ist die IP die selbe dann keine E-Mail).
Im Achiv habe ich nichts darüber gefunden.

Cu Jonny

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
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 Explicit

Public 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


Anzeige
Re: IP auslesen
26.04.2003 15:07:45
Hans W. Hofmann

Hallo Rainer,

ich wäre mit der gestellten Frage gleich fertig und antworten: 127.0.0.1 ;-).
Woher "weiß" Dein Programm über welchen Adapter die Online-Verbindung geht.
Ich hab mal eine API-Variante von Peter Verburgh angepasst. Damit der Algorithmus fündig wird, müsste man alle PrivateIPs 10.* 174.* 192.168.* 127.* 0 ausschließen und hätte dann guten Grund anzunehmen eine gültige Adresse gefunden zu haben.

Gruß HW



Re: IP auslesen
26.04.2003 15:27:10
Ramses

Hallo Hans,

auch mit deinem Programm bin ich gleich fertig und würde sagen

über meinen Proxy :-)
192.168.100.xxx

Und nun :-)

Ich weiss natürlich auch die Limitierung des obigen Codes.
Ich gehe z.B. mit zwei Adapter gleichzeitig online.
Eine öffentliche DSL und eine VPN.

Aber mit der oben gestellten Frage, gehe ich davon aus, dass der Fragesteller einen T-DSL Anschluss hat über den er mit einem angeschlossenen Modem Online geht.
Also eine einfache Standard-Installation.

Sollte bei IP-Config noch was anderes rauskommen, kann der den Suchstring ja entsprechend anpassen und dann die jeweilige Sequenz etwas genauer auslesen.

Deine Code-Sequenz ist für mich deshalb aber trotzdem interessant, weil die API Funktion anscheindend den Wert direkt zurückgibt.
Das muss ich mir nochmal etwas genauer zu Gemüte führen ;-))

Gruss Rainer


Anzeige
Re: IP auslesen
26.04.2003 15:32:10
Hans W. Hofmann

Ebent..
Is aber nicht mein Code!

Gruß HW

Re: IP auslesen (Danke)
26.04.2003 19:41:06
Jonny

Hallo Rainer und Hans W.
Danke für die schnellen Antworten.
Ich werde sie gleich mal testen !

Cu Jonny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige