IP mit MFC-DialogBox anzeigen lassen
-
Zu afxinet-Bibliothek:
ich habe nicht die blasseste Ahnung, was das für ein Teil ist. Ich habe nur 'CInternetSession' aus deinem Text kopiert und in die MSDN-Suche eingefügt. Dort steht, dass CInternetSession #include <afxinet.h> benötigt. Mehr nicht.Und getHtmlSource(CString url) hat einen Rückgabewert vom Typ CString. Schreib mal das in die Funktion von deinem Button:
CString strHTMLText = "";
strHTMLText = getHtmlSource("http://checkip.dyndns.org/");
AfxMessageBox(strHTMLText);
Dann sollte eine MessageBox erscheinen, die dir das anzeigt, was getHtmlSource "erzeugt".
-
Super, vielen Dank. Klappt jetzt erstmal.
Leider hattest du schon recht, wenn man jetzt den Button drückt erhält man eine Messagebox mit:
"<html><head><title>Current IP Check</title></head><body>Current IP Address: 217.135.11.101</body></html>".
Das will ich aber wenn möglich vermeiden. Kennst du eine Funktion, die mir nur die Zahlen ausgibt? Oder kann man vielleicht mit dem Control "IP Adress" arbeiten?
-
Noch was:
Was bedeutet denn in deinem Code:
CString strHTMLText = ""; strHTMLText = getHtmlSource("http://checkip.dyndns.org/"); AfxMessageBox(strHTMLText);Das Afx vor Messagebox? Hab ich noc nie gelesen. Was hat das denn für eine Funktion?
-
Die normale MessageBox macht manchmal Probleme und braucht so viele Parameter... Ich nehme immer die AfxMessageBox, aber wo die jetzt genau herkommt... ?!?
Probier mal:
CString strHTMLText = ""; strHTMLText = getHtmlSource("http://checkip.dyndns.org/"); AfxMessageBox(strHTMLText); int i = strHTMLText.Find("Address:"); int n = strHTMLText.Find("<", i); strHTMLText = strHTMLText.Mid(i+10, n-i); AfxMessageBox(strHTMLText);Ist nicht so schön, könnte aber klappen. Evtl. müssen die Zahlen noch um ein paar Werte nach oben oder unten verschoben werden, damit sie genau den gewünschten Substring ausschneiden, habe ich jetzt nicht ausprobiert.
[edit] ...jaja, sieht mit Code-Tags besser aus...
[/edit]
-
Ihr seit mir ja Helden...
Man sollte das auch ohne Inetseite schaffen
http://c-plusplus.net/forum/viewtopic.php?t=77199&highlight=ip
Devil
-
*g* das kann ja jeder

[rausreden]...öhm,... Bedingung des Fragenden war das Ermitteln der IP über die angegebene URL (siehe 2. Posting) [/rausreden]
-
Hmm, jetzt zeigt er mir aber 2 MessageBoxes. Eine mit dem kompletten HTML-Code die zweite dann mit dem definiertem Fragment....
-
Unschön ist es eigentlich auch. Wo könnte ich denn nachlesen, wie ich sowas mit dem "IP Adress" Button mache. Oder hat vielleicht jmd. einen ausführlichen Tipp *hüstel*
Danke schonmal im Voraus
-
Zu den MessageBoxen:
das war ja nur, um die jeweiligen Inhalte anzuzeigen. Die 1. MessageBox kannst du weglöschen. Und bei der 2. hast du jetzt eine Möglichkeit, wie du an die IP kommst. Den String kannst du jetzt z.B. nach Punkten unterteilen (mit Find() und Mid(...) wie bereits gemacht), in Zahlen umwandeln (mit atoi(..)) und in ein IP-Kontrol schreiben oder als String belassen und in ein Editfeld schreiben oder in der MessageBox lassen oder...Zu deinem IP-Ctrl:
- Strg-Taste gedrückt halten und im Resourcen-Editor auf das IP-Control klicken -> eine Membervariable der Kategorie Control erstellen (z.B. m_IP)
- im Code:
m_IP.SetAddress(168,108,108,106);
...und schon steht das drin. Wenn du da andere Zahlen haben willst: siehe fettgedrucktes oben...und ja, es ist unschön über die Web-Site zu gehen
-
Das werd ich mal heute abend ausprobieren vielen Dank jedenfalls.
Ich hab gemerkt, dass 2 Messageboxes kamen, weil der String plötzlich zu lange war. Ich hab noch nicht ganz verstanden, wie ich den kompletten String den abschneiden und nur ein bestimmtes Fragment anzeigen lassen kann??
Nochmals vielen Dank
-
isabeau schrieb:
Und bei der 2. hast du jetzt eine Möglichkeit, wie du an die IP kommst. Den String kannst du jetzt z.B. nach Punkten unterteilen (mit Find() und Mid(...) wie bereits gemacht), in Zahlen umwandeln (mit atoi(..)) und in ein IP-Kontrol schreiben oder als String belassen und in ein Editfeld schreiben oder in der MessageBox lassen oder...
Also, ich weiß nicht genau, wie das mit Find(), MID() bzw. atoi funktioniert???
-
Wenn es dich interessiert, wie es geht:
- hier nach oben scrollen [edit](OK, in diesem Fall entfält das scrollen)
[/edit]
- oben rechts auf [suchen] klicken
- in dem obern Feld einen von den Begriffen eintragen
- bei Forum "MFC mit dem Visual C++" oder "FAQ - MFC" einstellen
- unten in der Mitte "Suchen" anklicken
-> Beiträge lesen
War schon tausend mal hier und wäre zu lang, um es jetzt noch mal zu erzählen.
Jetzt ist nämlich WOCHENENDE.
Bin weg...
-
Werd jetzt auch mal gehen. Ich werd euch (dich) frühestens wieder übernächste Woche mit Fragen bombardieren. Vielen Dank jedenfalls für den "informativen" Tag:)