Adresses IP et masques type 125.253.*.* ... [c] - C - Programmation
Marsh Posté le 22-10-2003 à 15:02:02
et comment
le vla mon soocÿ
Marsh Posté le 22-10-2003 à 15:03:15
ben ca c'est con a dire mais c'est ton probleme
je sais pas comment tu parse ton fichier de conf
Marsh Posté le 22-10-2003 à 15:09:04
Ben j'ai le masque sous forme d'une chaine style"192.168.*.*".
Apres, avec strtok et co, je peux facilement isoler les composantes.
Mais comment tu transforme 192 en int sous forme unsigned char ( ou le contraire ).
La je sais pas !
Marsh Posté le 22-10-2003 à 15:09:52
tetedeiench a écrit : et comment |
C'est pas terrible nu masque comme ça.
Le système existant des masques de réseau bit à bit est plus simple à vérifier, et offre plus de possibilités de paramétrage. Là tu vas être obligé de faire une comparaison de chaines de caractères (contre une comparaison de bits, plus rapide et simple, avec les masque d'IP habituels).
Il existe quoi comme "méta caractères" possibles dans tes masques (*, et autre choses ?)
EDIT:
Et t'as le droit de faire des masques genre: "192.168.1*.4*8" ?
Marsh Posté le 22-10-2003 à 15:11:00
tetedeiench a écrit : Ben j'ai le masque sous forme d'une chaine style"192.168.*.*". |
unsigned char c = (unsigned char)monInt;
monInt c = (int)monUnSignedChar;
y'a vraiment un truc que je dois pas comprendre
Marsh Posté le 22-10-2003 à 15:11:36
Un bête cast ca passe
Me dit pas que j'ai cherché encore midi à 14heures...
Marsh Posté le 22-10-2003 à 15:12:25
ben tu risques des ennuis si ton int est > 255 ou <0 et que tu cast ca en unsigned char, mais la vu comment tu bosses je penses pouvoir dire que t peinard
Marsh Posté le 22-10-2003 à 15:12:31
chrisbk a écrit : |
heu, il voulait pas plutôt
Code :
|
Marsh Posté le 22-10-2003 à 15:13:45
El_gringo a écrit :
|
ben sinon sscanf....
perso je convertirais tout ca au parse mais bon...
Marsh Posté le 22-10-2003 à 15:28:36
El_gringo a écrit :
|
non, quand même, atoi, je connais
nan nan, la valeur est rangée dans un unsigned char et donc je pensais devoir convertir pouir comparer ca a un int... maintenant, si un bête cast ca passe...
Marsh Posté le 22-10-2003 à 15:29:18
Perso j'essyaerai de faire utiliser des masques corrects.
Marsh Posté le 22-10-2003 à 20:20:45
Je peux pas changer l'énoncé du projet donc que ces masques soient merdiques m'en foo, je dois faire avec
Je viens de me rendre compte que sous nux les IP étaient en uint_32_t ... impossible de trouver comment on bosse avec ca... une idée ?
Marsh Posté le 22-10-2003 à 21:36:34
exemple parfait de merde avec atoi ... tout le monde est d'accord que 0 est une valeur valide et important pour un octet dans une adresse IP ? manque de bol, si atoi échoue, elle renvoie 0 ... dommage n'est ce pas ? --> sscanf
Marsh Posté le 22-10-2003 à 22:04:55
Effectivement, c'est moyen de chez moyen
mais j'utilise pas atoi mais quelque chose de pire, strtok suivi de strcmp
Marsh Posté le 22-10-2003 à 23:05:35
Taz a écrit : exemple parfait de merde avec atoi ... tout le monde est d'accord que 0 est une valeur valide et important pour un octet dans une adresse IP ? manque de bol, si atoi échoue, elle renvoie 0 ... dommage n'est ce pas ? --> sscanf |
J'allais le dire. Methode plus qu'éprouvée.
A+,
Marsh Posté le 23-10-2003 à 09:02:48
Taz a écrit : exemple parfait de merde avec atoi ... tout le monde est d'accord que 0 est une valeur valide et important pour un octet dans une adresse IP ? manque de bol, si atoi échoue, elle renvoie 0 ... dommage n'est ce pas ? --> sscanf |
Tu casses les couilles Taz. Quand est ce que tu vas arrêter d'être méprisant, dès que tu fais un remarque ?
Marsh Posté le 23-10-2003 à 09:15:18
El_gringo a écrit : |
je le trouvais plus meprisant envers atoi que toi (superbe phrase )
Marsh Posté le 23-10-2003 à 09:55:15
chrisbk a écrit : |
Je trouve aussi
mais atoi cai pa bien on ai d'acaur.
Marsh Posté le 23-10-2003 à 09:59:43
chrisbk a écrit : |
Ha ouais, j'avais mal lu. Au lieu de "exemple parfait de merde avec atoi...", j'avais lu "parfait exemple de merde, avec atoi..." Merde se rapportant à "exemple", de ma conception !
Bref, désolé, sur ce coup c'est moi qui agrasse gratuitement. Taz, t'as pas encore calculé, mais j'm'excuse déja !
Marsh Posté le 22-10-2003 à 14:49:13
Hello !
Pour notre projet, on ne doit accepter que des requêtes de certaines sources, définies dns un fichier de config, qui contient des regles de type :
ACCEPT IP 192.168.*.*
Mon probleme est de comparer ce masque a l'adresse IP contenue dans la struct sockaddr_in recue apres le listen.
J'ai vu comment y acceder via strcut sockaddr_in.sin_addr.s_b ( 0,1,2,3) pour accéder aux parties de l'IP, mais maintenant, je me demande comment comparer ca, de type unsigned char, au masque que je récupère sous forme de string.
Merci