CIPAddressCtrl bzw. IP hochzählen lassen +1



  • Ich bekomme mit CIPAddressCtrl nicht hin, daß
    die eingegebene IP +1 hochgezählt wird.
    Habe 2 Felder zur Eingabe von IP's.
    1 Feld "ab IP" zählen. 2tes Feld "bis IP" zählen.
    Habe aber keinen Plan wie ich mit CIPAddressCtrl
    einen Zähler hinbekomme. Meine Notlösung mit
    4 Eingabefeldern und einer Schleife, die jedes
    Feld hochzählt, bis der Wert mit dem zugehörigen Gegenfeld
    identisch ist, wollte auch nich so ganz.Die MessageBox zur
    Überprüfung der For-Schleife gab nur unleserliche Zeichen aus 🙄

    Hab das Projekt erstmal gelöscht und starte einen neuen
    Versuch. Wäre aber über Tipps dankbar, damit ich das ganze heute
    noch umgesetzt bekomme.

    Snooper



  • Hi!
    Bin mir nicht ganz sicher: Normalerweise kann man die IP splitten. In diesem Fall geordnet in einer MessageBox:

    DWORD dIPAddress;
    m_cIPAddress.GetAddress(dIPAddress);
    m_strIP.Format("%d.%d.%d.%d %x.%x.%x.%x",
    HIBYTE(HIWORD(dIPAddress)),
    LOBYTE(HIWORD(dIPAddress)),
    HIBYTE(LOWORD(dIPAddress)),
    LOBYTE(LOWORD(dIPAddress)),
    HIBYTE(HIWORD(dIPAddress)),
    LOBYTE(HIWORD(dIPAddress)),
    HIBYTE(LOWORD(dIPAddress)),
    LOBYTE(LOWORD(dIPaddress)));
    
    AfxMessageBox(m_strIP);
    

    mfg *mike* 😃



  • Danke für die schnelle Antwort,

    leider läuft es so bei mir nicht.
    Irgendwelche weiteren Vorschläge wie ich
    das splitten kann ?

    Snooper



  • Nachtrag:

    Evtl. habe ich mich etwas zu sehr auf CIPAdressCtrl versteift.
    Ich schilder mal eben was ich eigentlich bezwecken will.
    Ein kleines Netzwerkprogramm soll zu freigegebenen Ordnern eine
    Verbindung herstellen(Netzlaufwerk). Hierzu muß die IP bzw. Hostname
    eingegeben werden. Wenn ich eine einzelne IP eingebe no Problemo.
    Aber einen ganzen Block (praktisch wie ein Scanner) nacheinander
    abarbeiten, das soll auch möglich sein.
    So spart man sich das suchen der IP des betreffenden Rechners.
    (Wenn man z.B. die IP's 192.1.1.5 bis 192.1.1.8 verbinden will,
    und jeweils der Ordner "Austausch" freigegeben ist).

    Snooper



  • Hi!
    Nutz einfach die obige Funktion, um die IP in einen String zu packen. Dann kannst du ja die Funktionen von CString nutzen. Z.B. kannst du mit FindString den ersten "." von hinten suchen. Du kannst den String ja beliebig manipulieren (I glob mit ReplaceSel oder so).

    mfg *mike* 😃



  • hey!!! ich hab auch n problem!! ich weiß nicht wie ich aus einem ip feld die ip auslesen kann und in einem shellexecute als variable verwenden kann!!! könnt ihr mir helfen?? ich habe bis jetzt als code:

    CIPAdressCtrl()
    {
    	void ClearAddress( );
    	BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
    	int GetAddress( BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3 );
        int GetAddress( DWORD& dwAddress );
    	void SetAddress( BYTE nField0, BYTE nField1, BYTE nField2, BYTE nField3 );
        void SetAddress( DWORD dwAddress );
    	void SetFieldFocus( WORD nField );
    	void SetFieldRange( int nField, BYTE nLower, BYTE nUpper );
        return true;
    }
    

    greetz desert



  • Hallo,

    deine Frage hier:

    http://www.c-plusplus.net/forum/viewtopic.php?t=73540

    und die Wiederholung jetzt läßt darauf schließen, daß dir noch wesentliche Grundlagen in C++ fehlen. Um die in einem IP-Steuerelement eingegebene Adresse auszulesen, braucht man nur einen Aufruf, nämlich GetAddress, aber sicher nicht das Einfügen sämtlicher Methoden von CIPAddressCtrl in den Code.

    MfG


Anmelden zum Antworten