ip und integer
-
wie speicher ich eine ip in interger
-
wenn du 4 bytige integers hast, passt eine ip adresse genau rein.
192.168.0.15 --> 0xc0a8000f
-
würd mich nur interessieren wie
int test; char ip[5]; ip = "127.0.0.1"; ip = test
-
z.b. mit inet_addr()
-
pale dog schrieb:
z.b. mit inet_addr()
hab das was gefunden aber ich will zb: 192.168.100.2 nach int kicken.
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int inet_aton(const char *cp, struct in_addr *pin); in_addr_t inet_addr(const char *cp); char *inet_ntoa(struct in_addr in);
-
ist es so schwer die man pages zu lesen?
int test = inet_addr("192.168.0.1");
-
und wie ist die umkehrfunktion davon?
hab die in int und will die gepunktete version zurück.
Grüße
-
greenghecco schrieb:
und wie ist die umkehrfunktion davon?
hab die in int und will die gepunktete version zurück.
Grüße
0xc0a8000f
0xc0 . 0xa8 . 0x00 . 0x0f
192 . 168 . 0 . 15
-
greenghecco schrieb:
und wie ist die umkehrfunktion davon?
hab die in int und will die gepunktete version zurück.
Grüße
ich wiederhole das, was ich vor 3 Jahren geschrieben habe:
ist es so schwer die man pages zu lesen?
Laut man-page gibt es auch die Funktion man: inet_ntoa
-
ja und die will n struct in_addr und kein int
-
ich wiederhole das, was ich vor 3 Jahren geschrieben habe:
[/quote]ah! ich habe mich schon gefragt wieso jemand eine Link zu seiner AOL-Webseite in der Signatur hat, die schon 2008 abgeschaltet wurde
-
also wens interessiert. Habs selber gemacht. Bestimmt nicht schön aber funzt ;). Fehlerabfangen muss jeder selbst:
uIP ist hier die Integer 32 vom der IP adresse
stringstream did_l, did_l2, duddelup; string did_s, meirs; did_l << hex << uIP; did_s = did_l.str(); int i_val; for (int uzu=0;uzu < 4;uzu++){ did_l2 << std::hex << did_s.substr(uzu*2,2); //cout << std::hex << did_s.substr(uzu*2,2); meirs = did_l2.str(); did_l2 >> i_val; did_l2.clear(); duddelup << i_val; if (uzu < 3){ duddelup << "."; } //did_l2=""; }
-
greenghecco schrieb:
also wens interessiert. Habs selber gemacht.
Es geht mit inet_ntoa auch kürzer:
struct in_addr s; s.s_addr = 16777343; // 127.0.0.1 als int printf("IP-Adresse schoen formatiert: %s\n", inet_ntoa(s));
-
oh da fehlt noch das did_s = duddelup.str(); am ende.
naja brauche es als string in einer variable, nicht zur ausgabe
-
greenghecco schrieb:
naja brauche es als string in einer variable, nicht zur ausgabe
Die Transferleistung "statt ausgeben in Variable speichern" kannst du mit Sicherheit selbst erbringen.
-
Ich würde mich einfach um den ganzen Mist nicht kümmern und getaddrinfo verwenden.