ho trovato questa funzione,restituisce l' ip,può andare bene?
codice:int lookup_host (const char *host,char *indip) { struct addrinfo hints, *res; int errcode; char addrstr[100]; void *ptr; memset (&hints, 0, sizeof (hints)); hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags |= AI_CANONNAME; errcode = getaddrinfo (host, NULL, &hints, &res); if (errcode != 0) { printf("Host non presente\n"); return -1; } //printf ("Host: %s\n", host); inet_ntop (res->ai_family, res->ai_addr->sa_data, addrstr, 100); int y=0; while (res){ y++; inet_ntop (res->ai_family, res->ai_addr->sa_data, addrstr, 100); switch (res->ai_family) { case AF_INET: ptr = &((struct sockaddr_in *) res->ai_addr)->sin_addr; break; case AF_INET6: ptr = &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr; break; } inet_ntop (res->ai_family, ptr, addrstr, 100); //printf ("IPv%d address: %s (%s)\n", res->ai_family == PF_INET6 ? 6 : 4, // addrstr, res->ai_canonname); if(y==1) strcpy(indip, addrstr); res = res->ai_next; } //printf("---->%s\n",indip); return 0; }

Rispondi quotando