begin process at 2012 05 29 07:53:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

longip ... probleme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

longip ... probleme

jeudi 7 octobre 2004 à 13:53:47 | longip ... probleme

winwarrior

Membre Club
Salut :)
Voila j'ai un petit probleme avec un code qui est censé me renvoyer le longip, il me retourne -795585024 au lieu de 2130772483 (longip de 127.1.2.3), voici mon code:


void longip(char ip[15]) {
char *b = strdup(ip);
char *ip1 = strtok(ip,".");
char *ip2 = strtok(0,".");
char *ip3 = strtok(0,".");
char *ip4 = strtok(0,".");
int ip5 = (int) ip1*256*256*256;
int ip6 = (int) ip2*256*256;
int ip7 = (int) ip3*256;
int ip8 = ip5+ip6+ip7;
char result[10];
sprintf(result,"%d\n",ip8);
printf(result);
}

merci de votre aide !

win
jeudi 7 octobre 2004 à 17:23:41 | Re : longip ... probleme

Nebula

Membre Club
Essaie avec des unsigned long.
jeudi 7 octobre 2004 à 17:33:53 | Re : longip ... probleme

Nebula

Membre Club
Réponse acceptée !
Faut aussi corriger deux/trois trucs...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(void) {
char ip[16];
strcpy(ip,"127.1.2.3");
char *ip1 = strtok(ip,".");
char *ip2 = strtok(0,".");
char *ip3 = strtok(0,".");
char *ip4 = strtok(0,".");
unsigned long ip5 = (unsigned long) atoi(ip1)*256*256*256;
unsigned long ip6 = (unsigned long) atoi(ip2)*256*256;
unsigned long ip7 = (unsigned long) atoi(ip3)*256;
unsigned long ip8 = (unsigned long) atoi(ip4);
printf("%lu\n", ip5 + ip6 + ip7 + ip8);
return 0;
}
jeudi 7 octobre 2004 à 17:35:09 | Re : longip ... probleme

aardman

Membre Club
Salut,
Tu castes un char* en int, et ca donne le bon resultat ?
jeudi 7 octobre 2004 à 18:03:52 | Re : longip ... probleme

aardman

Membre Club
Salut,
Faudrait pas l'appeler trop souvent cette func quand meme (4 appels de strtok() + 4 appels d'atoi() pour convertir une ip en DWORD, ouch).
jeudi 7 octobre 2004 à 18:12:55 | Re : longip ... probleme

Nebula

Membre Club
C'est sûr mais bon je me base sur son exemple.
jeudi 7 octobre 2004 à 18:48:35 | Re : longip ... probleme

aardman

Membre Club
Réponse acceptée !
Salut,
voici deux fonctions qui font la meme chose (en mieux je pense):

// avec atoi (bof)
unsigned long _ip(char * ip)
{
BYTE tmp[4];
char * c = ip;
for(int i = 0; i < 4; i++)
{
tmp[i] = atoi(c);
while(*c != '.' && *c) c++; c++;
}
return *((unsigned long*)tmp);
}


// sans atoi
unsigned long __ip(char * ip)
{
BYTE tmp[4];
char * c = ip;
for(BYTE *b = tmp, *f = b + 4; b < f; b++)
{
*b = 0;
while(*c != '.' && *c)
{
*b *= 10;
*b += (*c++ - '0');
}
c++;
}
return *((unsigned long*)tmp);
}
jeudi 7 octobre 2004 à 19:02:19 | Re : longip ... probleme

winwarrior

Membre Club
ok ça fonctionne nikel, merci les gars ;)

win
jeudi 7 octobre 2004 à 20:22:32 | Re : longip ... probleme

Kaid

Encore mieux, utiliser les fonctions réseau standards qui servent à ca:


in_addr_t inet_addr(const char *cp);


et (pas disponible sur tous les systèmes):


int inet_aton(const char *cp, struct in_addr *addr);


Kaid - kaid.fr.st


Cette discussion est classée dans : code, int, char, longip, strtok


Répondre à ce message

Sujets en rapport avec ce message

"désallocation" inopinée [ par vecchio56 ] J'ai touvé un truc bizarre avec Visual C++ 6: le code suivant plante:#include void f(char* a){ a = new char[100]; // alloue de la problème de char [ par minet03 ] Coucoutout le monde, tout d'abord voilà mon code :#include #include #include #include #include #include char *bin_dec(char *binai problème de char [ par minet03 ] Bonjour c'est encore le débutant, voilà le code :#include #include #include char inverser_char(char variable[]){ int longueur = strlen(variable); // l Prob avec les variables [ par Ilsundal ] Bonjour a tous,voila mon probleme, j'ai declaré une variable, mais quand je lui assigne par exemple  : MAISON, il m'affiche que M. comment faire pour gestion d'un cinéma [ par rouday55 ] Bonsoir bonsoir ! Je suis novice en langage c, je m'y suis mis depuis début novembre et j'ai quelques lacunes dans la résolution de mon problème. En f String to Char puis Char to Int puis Int to Char puis Char to Int [ par gooooo ] Bonjour, Je débute avec Visual C++ et j'avoue que j'ai un peu de mal. Habituellement j'utilise Qt et la il y a du changement. Voici le problème : J Tableaux - Gestion dynamique de la mémoire [ par Smanyx ] Salut ! Je voudrais écrire un programme qui accepte des noms saisis au clavier et les amasse dans un tableau. Comme les noms sont entrés dans un bouc Convert char** en int sous c [ par clavz40 ] Bonjour a tous, Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos. J'avais besoin d'une fon Probleme de Malloc sur un char ** [ par tomy46 ] Bonjour a tous, Avant tout, désole pour les accents (sauf ceux repris par la correction orthographique) mais je suis sur qwerty ... Bon voici mon pr convertsion int en unsigned char [ par avg ] Salut tout le monde j'ai une souci pour convertir un int en unsigned char[] voir le code c++ qui affiche l'erreur [code=cpp]int a=100; unsigned char


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales