[c] Adresses IP et masques type 125.253.*.* ...

Adresses IP et masques type 125.253.*.* ... [c] - C - Programmation

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 :jap:

Reply

Marsh Posté le 22-10-2003 à 14:49:13   

Reply

Marsh Posté le 22-10-2003 à 14:54:00    

huh ?
ben tu convertis ?

Reply

Marsh Posté le 22-10-2003 à 15:02:02    

et comment :D
 
le vla mon soocÿ :D


Message édité par Tetedeiench le 22-10-2003 à 15:02:13
Reply

Marsh Posté le 22-10-2003 à 15:03:15    

ben ca c'est con a dire mais c'est ton probleme :D
je sais pas comment tu parse ton fichier de conf

Reply

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 !

Reply

Marsh Posté le 22-10-2003 à 15:09:52    

tetedeiench a écrit :

et comment :D
 
le vla mon soocÿ :D


 
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" ?


Message édité par El_gringo le 22-10-2003 à 15:11:08
Reply

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.*.*".
 
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 !


 
unsigned char c = (unsigned char)monInt;
monInt c = (int)monUnSignedChar;
 
 
y'a vraiment un truc que je dois pas comprendre


Message édité par chrisbk le 22-10-2003 à 15:11:43
Reply

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...

Reply

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

Reply

Marsh Posté le 22-10-2003 à 15:12:31    

chrisbk a écrit :


 
unsigned char c = (unsigned char)monInt;
monInt c = (int)monUnSignedChar;
 
 
y'a vraiment un truc que je dois pas comprendre


 
heu, il voulait pas plutôt

Code :
  1. int iMonInt = atoi ("192" ); // ss windows seulement


Message édité par El_gringo le 22-10-2003 à 15:13:04
Reply

Marsh Posté le 22-10-2003 à 15:12:31   

Reply

Marsh Posté le 22-10-2003 à 15:13:45    

El_gringo a écrit :


 
heu, il voulait pas plutôt

Code :
  1. int iMonInt = atoi ("192" ); // ss windows seulement




 
ben sinon sscanf....
perso je convertirais tout ca au parse mais bon...

Reply

Marsh Posté le 22-10-2003 à 15:28:36    

El_gringo a écrit :


 
heu, il voulait pas plutôt

Code :
  1. int iMonInt = atoi ("192" ); // ss windows seulement




 
non, quand même, atoi, je connais :lol:
 
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...

Reply

Marsh Posté le 22-10-2003 à 15:29:18    

Perso j'essyaerai de faire utiliser des masques corrects.

Reply

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 ?

Reply

Marsh Posté le 22-10-2003 à 21:29:29    

ok je viens de toper inet_ntoa et inet_aton :love:

Reply

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

Reply

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 :D


Message édité par Tetedeiench le 22-10-2003 à 22:05:09
Reply

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+,


Message édité par gilou le 22-10-2003 à 23:06:13

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 23-10-2003 à 00:09:26    

atoi j'ai banni depuis belle lurette en fait ;)

Reply

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 ?

Reply

Marsh Posté le 23-10-2003 à 09:15:18    

El_gringo a écrit :


 
Tu casses les couilles Taz. Quand est ce que tu vas arrêter d'être méprisant, dès que tu fais un remarque ?


 
je le trouvais plus meprisant envers atoi que toi (superbe phrase [:dawa])

Reply

Marsh Posté le 23-10-2003 à 09:55:15    

chrisbk a écrit :


 
je le trouvais plus meprisant envers atoi que toi (superbe phrase [:dawa])


 
Je trouve aussi :jap:
 
mais atoi cai pa bien on ai d'acaur.

Reply

Marsh Posté le 23-10-2003 à 09:59:43    

chrisbk a écrit :


 
je le trouvais plus meprisant envers atoi que toi (superbe phrase [:dawa])


 
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 ! :D
Bref, désolé, sur ce coup c'est moi qui agrasse gratuitement. Taz, t'as pas encore calculé, mais j'm'excuse déja ! :jap:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed