|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 5 ![]() |
Bonjour à tous!
Voilà j'ai un petit soucis et étant novice en PHP je ne sais vraiment pas quoi faire! Je commence le PHP en cours (BTS) et nous avons décidés de réaliser un formulaire qui nous permet de rentrer un masque réseau et deux adresses IP. Lorsque nous entrons ces trois adresses, notre programme nous les renvoi converties en binaire : (255.255.255.0) en binaire (11111111.11111111.11111111.00000000). Mon soucis maintenant et qu'il faudrait que je puisse comparer le 1er bit de chacune de ces adresses de façon à me dire si ces adresses font parties du même réseau où pas.....et c'est là que je nage complétement. Merci d'avance à ceux qui auront la gentillesse de me porter secours en me donnant quelques conseils. |
|
|
00
|
|
|
#2 |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
1) tu decoupe ton adresse via le . pour avoir tes 4 octets séparés
2) tu coompare tes bits 1 par 1 : ça c est la theorie maintenant va falloir fare un peu de recherche pour pratiquer lol |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 5 ![]() |
Exactement RideKick !!
Je pense avoir déjà fait ce dont tu me parle : Code :
Mais c'est la façon de comparer les bits 1 par 1 qui me pose problème justement, je ne sais absolument pas comment faire pour comparer chaque 1er bit de chaque 1ere case de chaque 1ere adresse (C'est dur d'être clair lol!!) PS : J'ai cru comprendre que je n'avais pas posté mon message au bon endroit, où faudrait-il donc que je le place. Merci encore pour votre aide. |
||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() ![]() Aurélien Développeur Web Inscription : avril 2006 Messages : 510 ![]() |
comparaison bit-à-bit :
- et & - ou | exemple : Code :
|
||
|
00
|
|
|
#5 | ||
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
en reprenant ton code :
Code php :
la je suis sur le 1er octet mais tu fais une boucle de 1 a 4 et hop le tour est joué ! Explication : je compare les bits 1 a 1 ! |
||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() ![]() Aurélien Développeur Web Inscription : avril 2006 Messages : 510 ![]() |
le but est pas de comparer chacun des bits des 4 octets de l'adresse mais le premier seulement, ça suffit à déterminer si les adresses sont liées au même sous réseau ('fin j'crois, c'est loin mes cours de réseau !)
et pourquoi tu fais une comparaison sur supérieur... pas compris l'année dernière j'utilisais mon histoire de masque avec les opérateurs bit à bit pour traiter des signaux ça marchait très bien :p |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 5 ![]() |
Merci DIA FR et RideKick de vos réponses je vais essayer de me débrouiller avec tes infos DIA FR et la prochaine fois je ferais en sorte de poster mon message au bon endroit promis
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
tiens ça m'a tellement intrigué que je me suis tapé tout le code :
Code php :
Impulsion quand tu nous tiens .... Il faut que $adresse et $masque soit sous la forme '11111001.10100110.11111001.10100110' ! Je te fais une comparaison bit a bit de l'adresse au complet je pense que tu vas pouvoir te depatouiller avec ça !? |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 5 ![]() |
DIA FR a raison RideKick il faut en fait si tu veux que je compare le 1er bit du masque avec le 1er bit de l'IP1 et avec le 1er bit de l'IP2 :
mask = 255.255.255.0 (adresse rentrer dans mon formulaire) en binaire = 11111111.11111111.11111111.00000000 (Résultat après la convertion) IP1 = 192.168.1.2 (adresse rentrer dans mon formulaire) en binaire = 11000000.10101000.00000001.00000010 (Résultat après la convertion) IP2 = 120.12.15.13 (adresse rentrer dans mon formulaire) en binaire = 01111000.00001100.00001111.00001101 (Résultat après la convertion) Il faurdrait donc que je puisse comparer les bits en rouge de façon à savoir si l'IP1 et l'IP2 sont sur le même réseau. Dans l'exemple que je donne, l'IP1 est sur le même réseau (puisque le 1er bit est à 1 comme le 1er bit du mask est aussi à 1) tandis que l'IP2 n'est pas sur le même réseau puisque son premier bit est à 0 (donc différent du 1er bit du mask) J'espère être assez clair dans ce que je raconte ...lol... Merci encore pour votre aide |
|
|
00
|
|
|
#10 | ||
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
qui peut le plus peut le moins :
Code php :
|
||
|
|
00
|
|
|
#11 |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
soit dis en passant :
mask = 255.255.255.0 (adresse rentrer dans mon formulaire) en binaire = 11111111.11111111.11111111.00000000 (Résultat après la convertion) IP1 = 192.168.1.2 (adresse rentrer dans mon formulaire) en binaire = 11000000.10101000.00000001.00000010 (Résultat après la convertion) IP2 = 192.168.0.13 (adresse rentrer dans mon formulaire) en binaire = 11000000.10101000.00000000.00001101 (Résultat après la convertion) Les premiers bits sont tous a 1 mais IP1 et IP2 ne sont pas dans le meem reseau .... |
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() ![]() Aurélien Développeur Web Inscription : avril 2006 Messages : 510 ![]() |
ip1 et ip2 sont sur le même réseau mais pas le même sous réseau là
d'où la comparaison du 1er bit de chaque octet... on peut clore le topic ? sinon on va se faire accuser de flood |
|
00
|
|
|
#13 | |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 5 ![]() |
Ok RideKick merci de t'être penché sur la question, autant pour moi si je me suis trompé dans mes explications, je vais tout de même essayer de me dépatouiller avec tes infos et ton code.
Vendredi 23/02 j'aurais la correction réaliser par mon prof donc je posterai ici ce qu'il a fait si jamais tu es toujours intéréssé par la solution. Merci encore pour ton aide
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com