C++ IP-Adresse in System Funktion Integrieren

Abbiic

Cadet 2nd Year
Registriert
März 2018
Beiträge
23
Hallo ich frage in meinem Programm eine IP Adresse ab und diese würde ich gerne in eine System Funktion stecken so das der Benutzer Sie beliebig ändern kann.


Ich habe hier mal ein Beispiel Programm geschrieben um es zu Präsentieren was ich meine.


#include <iostream>
using namespace std;
int main()

{
int abfrage;
cout<<"Geben Sie die IP Adresse ein welche Sie anpingen moechten\n";
cout<<"Abfrage: ";
cin>>abfrage;
system("ping 192.168.11.212");

getchar();
return 0;
}


Anstatt der IP Adresse (192.168.11.212) würde ich gerne den Wert der mir der Nutzer gegeben hat (abfrage) nutzen so das der Benutzer des Programmes jede beliebige IP Adresse anpingen kann.

Danke schon einmal im Vorraus ich hoffe ihr könnt mir helfen.
 
Von cin bekommst du ja ne Zeichenkette, die die IP enthält, jene mit "ping" verknüpfen und an system() übergeben.
 
Windows oder Linux?
 
C++:
#include "stdafx.h"
#include <iostream>
#include <string>


int main() {
   std::string input;
   std::cout << "Geben Sie die IP Adresse ein welche Sie anpingen moechten\n";
   std::cout << "Abfrage: ";
   std::cin >> input;

   system( std::string(std::string("ping ") + input).c_str() );
   system("pause");

   return 0;
}
Ergänzung ()

Die String-Verkettung in Zeile 12 ist nicht so hübsch, aber es verdeutlicht das Prinzip.
 
ricooo85 schrieb:
Die String-Verkettung in Zeile 12 ist nicht so hübsch, aber es verdeutlicht das Prinzip.
Ist aber imho overkill. Warum nicht so wie er es schon hat, nur mit den minimalen Korrekturen und Verschönerungen? Also sowas in der Art wie:
C++:
#include <iostream>
#include <string>
using namespace std;

int main()
{
string eingabe;
string anzeige= "Geben Sie die IP Adresse ein, welche Sie anpingen moechten:";
cout << anzeige<< flush;
cin  >> eingabe;
string cmd = "ping " + eingabe;
system( cmd.c_str() );
getchar();
return 0;
}
Oder ähnlich.
 
Zuletzt bearbeitet:
blöderidiot schrieb:
Windows oder Linux?
Windows
Ergänzung ()

blöderidiot schrieb:
Ist aber imho overkill. Warum nicht so wie er es schon hat, nur mit den minimalen Korrekturen und Verschönerungen? Also sowas in der Art wie:
C++:
#include <iostream>
#include <string>
using namespace std;

int main()
{
string eingabe;
string anzeige= "Geben Sie die IP Adresse ein, welche Sie anpingen moechten:";
cout << anzeige<< flush;
cin  >> eingabe;
string cmd = "ping " + eingabe;
system( cmd.c_str() );
getchar();
return 0;
}
Oder ähnlich.




In meinem Richtigem Programm habe ich jedoch mit if und else if gearbeitet und habe somit mehrer mögliche Abläufe. Das soll heißen das es nicht immer ping ist sondern auch mal andere Befehle.
 
Zuletzt bearbeitet:
Das OS ist für so trivialen Code und die Aufgabe irrelevant. Soll die IP-Adresse des PCs automatisch via C++-Code ermittelt werden, sieht es schon anders aus.
 
Und wie wird die die Eingabe überprüft ? Schließlich muss es ja eine gültige IP sein.
 
... und wenn er nun einen DNS-Name angibt? Ich würde es an dieser Stelle nicht übertreiben, ansonsten findet man im Internet genügend regex um das zu prüfen.
 
Naja, wenn der Rest des Programmes eine IP Adresse erwartet, würde ich die Eingabe auf Diese auch prüfen. Das gibt sonst während der Laufzeit die tollsten Fehlerchen. Wenn das Prog dann komplex genug geworden ist, findet man Diesen Fehler nicht mehr.
 
Vielen Dank für die Hilfe habe eine Lösung Dank euch gefunden (=
 

Ähnliche Themen

Zurück
Oben