dans mon C++ application que j'ai wrriten ce code:appel système Linux getifaddr C++
struct ifaddrs *ifap;
if (0 != getifaddrs(&ifap)) {
error = errno;
return -1;
}
addresses.clear();
for (struct ifaddrs *ifa = ifap; ifa; ifa = ifa->ifa_next) {
sockaddr *s=ifa->ifa_addr;
PRINT(" LocalIP sockaddr %u.%u.%u.%u \n",s->sa_data[2],s->sa_data[3],s->sa_data[4],s->sa_data[5]);}
quand je déboguer l'impression que je vois quand j'ai IP statique comme 10.0.0.12 il imprime correctement. mais IP de DHCP comme 192.168.14.12 il l'imprime "-64.-88.14.12"
comment puis-je résoudre ce problème?
10x
quand je l'ai changé en% u je reçois au lieu de: 192.168.14.12 je reçois: 4294967232.4294967208.14.12 – gln
Eh bien, pouvez-vous coller le code réel, pas réécrire un? – x13n
Peu importe, j'ai mis à jour ma réponse. – x13n