Funktion zum Auslesen der IP auslesen
-
Hallo Leutz,
ich versuche eine Schleife zusammen zubasteln die aus einer geöffneten *.txt Datei,mit einer Menge von verschiedenen Daten, die ganzen IPs rausfiltert.
Leider habe ich damit meine Probleme kann mir da jemand helfen?so schaut meine geöffnete Datei aus...,
void CDateiDlg::OnButton1() //Datei Lesen { TCHAR str[1000]; CFileDialog m_dlgFile( TRUE ); // TRUE = Datei öffnen,FALSE = Datei speichern if( m_dlgFile.DoModal() == IDOK ) { m_pathname = m_dlgFile.GetPathName(); } CFile datei( m_pathname, CFile::modeRead ); datei.Read( str, sizeof( str ) ); datei.Close(); m_strEdit1 = str; UpdateData( FALSE ); // Variablen ---> Felder }
... diese Lass ich gerade in einem "Eingabefeld" ausgeben...,
-
Müssten schon ein paar mehr infos sein, hellsehen kann ich nicht...
Devil
-
hmm *grübel* ok ein Bsp.: Könnte so aus sehen ...
218.199.124.102 Hostname : bla OS: doof 218.166.124.102 Hostname : bla OS: doof 218.199.14.102 Hostname : bla OS: doof 218.199.124.1 Hostname : bla OS: doof
und nuun möchte ich gerne nunr die IP rausfilternn...
-
ich hatte mir erstmal unter c++ n paar Gedanken dazu gemacht, fpr dasFormat
123.123.123.123/hostname
Os: bla{ int ip1, ip2, ip3, ip4; // Okay, str enthaelt ein "/" pfad = str.substr(pos); // pfad enthaelt nun den Pfadanteil // Nun noch pruefen, ob IP Addresse if (4==sscanf(str.c_str(), "%d.%d.%d.%d", &ip1, &ip2, &ip3, &ip4)) { // Scheint okay zu sein: da sind 4 Zahlen durch Punkte getrennt. // Weitere Pruefungen moeglich ip = str.substr(0, pos); } } // Wenn wir hier ankommen und sowohl pfad alsauch ip nicht leer sind, // entspricht die Zeile dem geforderten Format printline(ip); };{ int ip1, ip2, ip3, ip4; // Okay, str enthaelt ein "/" pfad = str.substr(pos); // pfad enthaelt nun den Pfadanteil // Nun noch pruefen, ob IP Addresse if (4==sscanf(str.c_str(), "%d.%d.%d.%d", &ip1, &ip2, &ip3, &ip4)) { // Scheint okay zu sein: da sind 4 Zahlen durch Punkte getrennt. // Weitere Pruefungen moeglich ip = str.substr(0, pos); } } // Wenn wir hier ankommen und sowohl pfad alsauch ip nicht leer sind, // entspricht die Zeile dem geforderten Format printline(ip); };
[ Dieser Beitrag wurde am 25.11.2002 um 20:27 Uhr von uTaNG editiert. ]
[ Dieser Beitrag wurde am 25.11.2002 um 20:27 Uhr von uTaNG editiert. ]
[ Dieser Beitrag wurde am 25.11.2002 um 20:28 Uhr von uTaNG editiert. ]
-
Hatte da mal folgendes:
int CTestDlg::TestString(CString in) { bool buchstabe=false,zahl=false,ip=false; int r=0,ipcount=0; CString ip2,rest; for (int x = 0;x < in.GetLength();x++) { if( (in.GetAt(x) > 65 && in.GetAt(x) < 90)||(in.GetAt(x) > 97 && in.GetAt(x) < 122)) { buchstabe = true; } if( in.GetAt(x) > 48&& in.GetAt(x) < 59) { zahl = true; } } if (buchstabe == false && zahl == true) { ip2 = in; while (ip2.Find(".") >0 && ipcount <=3) { rest = ip2.Left(ip2.Find(".")-1); if (rest.GetLength() == 3) {ipcount ++;} ip2 = ip2.Mid(ip2.Find(".") + 1); } if (ip2.GetLength() == 3 && ipcount == 3) { r = 4;//IP } else { r = 2;//Zahl } } else { if (buchstabe == true && zahl == true) { r = 3;//Beides } else { r = 1; //Buchstaben } } return r; }
Vieleicht hilft das ja...
-
Schreibst du die Dateien selber, ich meine die mit den IP's.
Wenn ja arbeite lieber mit INI Dateien und nutze GetPrivateProfileString WritePrivateProfileString etc.
-
ne leider beruhen die quell-dateien nicht im *.ini format sonder als.txt bzw. *.log könnt ihr mir da trotzdem helfen?