Wie übergebe ich eine IPAdresse an "inet_addr("127.0.0.1");"
-
Wieso? Die Funktion akzeptiert Daten in der Form
255.255.255.255
Nun will ich diese aber zur Laufzeit an diese Funktion übergeben, und diese Funktion nimmt aber keinen string an und beim char hab ich ja das Problem das ich nie die Laenge der IP adresse kenne.
Von daher wollte ich wissen wo man noch so einen wert speichern könnte.
-
Ja was für Datentypen nimmt denn jetzt diese Funktion?
-
So wie ich es geschrieben habe:
inet_addr("127.0.0.1");
Genau so wird sie aufgerufen! Oder was meinst du?
-
Der Datenyp den die Funktion erwartet waere dann string oder char * ?
Das muss ja in der Definition der Funktion stehen.
-
char da er ja keinen string annimmt, char aber klappt
-
Wenn du meinst, dass du einen string im Sinne von std::string an inet_addr übergeben willst, geht das mit inet_addr(mein_string.c_str()). *rat*
-
hab ich ja das Problem das ich nie die Laenge der IP adresse kenne.
Wie lang glaubst du denn, kann eine IP-Adresse werden? Seh den Sinn jetzt nicht, dass mit einem string zu machen?!
-
Also in einen einfachen char bekommst du keine IP-Adresse rein.
Die länge einer IP-Adresse ist immer ein 32 Bit Integer.
Den einzigen Sinn den ich mir vorstellen kann an der Stelle einen char * oder einen string zu verwenden ist, das man nicht weiß wie in einem 32 Bit int die Bits abgespeichert werden (big/little endian).
-
Wenn du eine IP-Adresse als char* abspeicherst, denn inet_addr() benötigt einen char*, brauchst du 16 Bytes, für jede Ziffer + Punkte. Darum ging es ja, das kann nicht mehr sein, und 16 Bytes zu resevieren halt ich für machbar.
-
@operator void
besten dank funktioniert einwandfrei!