Salut tout le monde,
Ccomme le titre le précise, j'ai une machine sous Linux. Elle a un adresse IP du style 192.168.0.16, et grâce à un programme, je voudrai changer manuellement c'est à dire que l'utilisateur vas donner l'adresse IP de la machine lors d'une question (pour l'instant c le changement d'adresse ou je n'y arrive pas) , voici mon programme ki ne marche pas :
int main(int argc, char* argv[])
{
char tab [15] ={0} ;int sfd,i;
structifreq ifr;
struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr; memset(&ifr, 0, sizeof ifr);
if (0 > (sfd = socket(AF_INET, SOCK_STREAM, 0))) {
perror("socket()");
}
strcpy(ifr.ifr_name, "eth0");
sin->sin_family = AF_INET;
if (0 == ioctl(sfd, SIOCGIFADDR, &ifr)) {
printf("%s: %s\n", ifr.ifr_name, inet_ntoa(sin->sin_addr));
}
sin->sin_addr.s_addr= inet_addr("192.168.0.15");
if (0 == ioctl(sfd, SIOCGIFADDR, &ifr)) {
printf("%s: %s\n", ifr.ifr_name, inet_ntoa(sin->sin_addr));
}
A mes deux printf, j'obtient 192.168.0.16 et non une fois a 192.168.0.16 et l'autre a 192.168.0.15. Mais je crois que c'est la ligne en rouge et souligné qui me pose problème, mais lors de la compilation et de l'éxécution aucune erreur ou attention.
Merci de vos réponses et à bientot.