Wan ip



  • Hi leute ich wollte mal fragen :

    Alsi ich will gerne das meine aktuelle Wan ip adresse (internet ip) ihn eine txt datei gespeichert wird kann mir da einer helfen ?



  • muss es in C/C++ geschrieben sein? muss es ein bestimmtes format haben? darf es nur die IP adresse sein?
    am einfachsten würd das mit ner .cmd gehn

    Mit dem Editor eine neue Datei erstellen und folgenden Text eingeben:

    ipconfig > ip.txt

    und das dann als *.cmd speichern



  • hatte grad langeweile bei der Arbeit ^^. Hier ein beispiel für IP Adresse auslesen mit C++. Denke es gibt noch bessere Lösungen, daher wer ne bessere hat, würd mich dann auch interessieren 🙂

    #include <fstream>
    #include <string>
    #include <conio.h>
    
    using namespace std;
    
    int main()
    {
        string ip  = "";
        string tmp = "";
    
        system("ipconfig > IP_tmp.txt");
    
        bool abfrage = false;
        ifstream dat_ein("ip_tmp.txt", ios_base::in);
        while(!dat_ein.eof() && dat_ein)
        {
            dat_ein >> tmp;
            if(tmp == "IP-Adresse.")
                abfrage = true;
    
            if(tmp == ":" && abfrage)
                dat_ein >> ip;
        }    
        dat_ein.close();
        remove("ip_tmp.txt");
    
        ofstream dat_aus("ip.txt", ios_base::out | ios_base::app);
        dat_aus << ip << endl;
        dat_aus.close();        
    
        return 0;
    }
    


  • Hallo

    Mit ipconfig bekommst du nur deine internen IP-Adressen, ich nehme an mit WAN-IP meinst du diejenige, welche du von deinem Provider zugewiesen bekommen hast?! Am einfachsten geht das mit einem vb-Script. Das folgende Script schreibt dir deine WAN-Adresse in ein Textfile. Vielleicht hilft's dir...

    onst conURLSrc = "http://www.whatismyip.com"
    Const conFilSpec = "C:\temp\externalip.txt"

    Dim st(0)
    st(0) = "<h1>Your IP - "

    set http = createobject("microsoft.xmlhttp")
    set fso = CreateObject("Scripting.FileSystemObject")
    set fOutput = fso.CreateTextFile(conFilSpec,true)

    ' Get HTML from WHATISMYIP page
    http.open "GET",conURLSrc,False
    http.send

    ' Create array with each line as an element
    aHTML = Split(http.responsetext, vbCrLf)

    for i=0 To UBound(aHTML)
    if (Instr(aHTML(i),st(0))>0) then
    a = Instr(aHTML(i),st(0)) + len(st(0))
    b = Instr(a,aHTML(i),"</h1>") - a
    fOutput.WriteLine Mid(aHTML(i),a,b)
    end if
    next

    conFilSpec musst du natürlich noch anpassen, damit er für dich stimmt. Den Code in eine Textdatei laden und als *.vbs Datei abspeichern. Doppelklicken und schon hast du deine WAN-IP in einer Datei drin stehen... 🙂



  • Soweit ich weiß ist DAS ein C++ FORUM! und kein VB forum



  • Oh entschludigung... Ich wollte ja nur helfen bzw. einen Tipp geben, wie es gehen könnte.
    Hab leider nicht gewusst, dass in diesem C++-FORUM keine anderen Sprachen geduldet werden bzw. dass man hier nicht über seinen Tellerrand hinausschauen kann/darf...

    PS: Die Funktion ist nicht in VB sondern in VB-Script (VBS) geschrieben. Kleiner aber feiner Unterschied...


Anmelden zum Antworten