script php urgent

script php urgent - PHP - Programmation

Marsh Posté le 07-01-2009 à 15:49:38    

bonjour j'aimerai svp de l'aide
 
je fais une interface de recherche en effet l'utilisateur saisi une ip et il a une fois qu'il execute la recherche
le nom d'equpement qui gere cette ip...
Cf explication
 
1) formulaire qui comporte :
- 1 champ adresse RZO (192.168.0.0)
- 1 champ masque (24)
- 1 champ nom-equip ( toto)
 
 
 
2)il y a 1 interface  ou tu saisi ton @dresse ip (192.168.0.25)
 
j'aimerai récupérer le nom de l'equipement,
 
comme faire un script qui convertir mon @ip en @rzo????
c tout ce qui me reste  
 
tout marche

Reply

Marsh Posté le 07-01-2009 à 15:49:38   

Reply

Marsh Posté le 07-01-2009 à 16:01:39    

Est ce que tu pourrais donner plus de détails? Genre la façon dont les données sont stocké?
 
En tout cas, la réponse générique est :
- tu fais un formulaire qui comporte "1 champ adresse RZO"
- tu relis toutes les données que t'as stocké (ou tu fais un "select" avec l'adresse "RZO" si t'utilises une base de donnée) et tu l'affiches quand tu l'as trouvé (ou tu affiches un message "non trouvé" si aucun appareil connus n'a l'adresse saisie).

Reply

Marsh Posté le 07-01-2009 à 16:12:30    

j'ai une base de donnée Mysql où tous ces champs sont renseignés.
Cependant lorsque l'utilisateur saisi son adresse ip, j'aurai aimé que le script modifie le dernier octet de l'adresse ip de l'utilsateur en 0 de ce fait je n'ai juste qu'a lire la base de donnée et affiché le resultat

Reply

Marsh Posté le 07-01-2009 à 16:44:06    

pour la recherche :
http://fr2.php.net/manual/fr/function.strpos.php
http://fr2.php.net/manual/fr/function.strrpos.php
 
pour le traitement de la chaine
http://fr2.php.net/manual/fr/function.substr.php
http://fr2.php.net/manual/fr/funct [...] eplace.php
...
 
T'as aussi le choix de l'utilisation d'expression régulière mais c'est prendre un marteau pour tuer une mouche :
http://fr2.php.net/manual/fr/function.preg-replace.php
 
Tu peux aussi t'amuser à découper le texte en tableau, modifier le dernier élément du tableau et reconstituer le texte derrière, mais je trouve ça lourd juste pour remplacer les derniers caractères.
 
Il y a encore d'autres solutions mais déjà avec ça t'as largement de quoi passer cette difficulté.

Reply

Marsh Posté le 07-01-2009 à 17:17:40    

Merci pour ces fonctions..
Sinon est ce que tu sais s'il existerait une fonction en php qui modifie  
du genre : 192.168.0.25 ->192.168.0.0 qui modifie le 25 en 0?

Reply

Marsh Posté le 07-01-2009 à 17:19:18    

substr par exemple

Reply

Marsh Posté le 07-01-2009 à 17:20:02    

Oui, la moitié de celle que t'as donné omega2 peuvent le faire.
Par contre il existe pas de set25to0inip() déjà incorporée dans PHP


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2009 à 18:25:22    

ok le substr ça marche sauf qu'il faut que je renseigne la taille exacte de tte mes adresse ip dans le sens où si j'utilise par exemple:
$ipad = 192.168.0.5 -> pour modifier il faut que je fasse $ipad[11]='0';
pour 10.0.2.25 -> je suis coincé car le décompte dans l'algo n'est pas le meme.
aussi en utilisant la fonction substr , cette derniere ne fait que supprimer les caracteres en fonction du length utilisé.
 
 
Ideal:
Ce qui serait sympa je pense c'est que lorsque je saisi une adresse ip ($ipadd) il me recupere juste le dernier octet et me le remplace par 0.
pour récuperer ce dernier octet il faut qu'il sache que les octet sont séparé par des points (.) X.X.X.X ->X.X.X.0.
Savez vous s'il y a une fonction en php qui permet deja de décomposer  1 adresse ip & ensuite une fonction qui remplace tt le l'octet par 0?
 
merci

Reply

Marsh Posté le 07-01-2009 à 18:28:42    

alors omega2 t'as donné une liste de fonctions qui vont te permettre de faire ce que tu veux.

Reply

Marsh Posté le 07-01-2009 à 18:33:03    

Voir les expressions régulières (preg_match et preg_replace )


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2009 à 18:33:03   

Reply

Marsh Posté le 07-01-2009 à 18:57:35    

Si tu veux faire joujou avec des octets, tu peux utiliser ip2long pour obtenir un nombre :
http://fr.php.net/manual/fr/function.ip2long.php
 
Ensuite une opération sur les bits afin de ne garder que la partie que tu veux (opérateur "&" et le nombre "0xfff0" )  
Si tu veux t'amuser à récupérer le dernier octet tu fais pareil mais avec le nombre "0xf" et tu fais une simple soustraction.  
 
Enfin, un coup de long2ip et t'as de nouveau du texte.
 
PS : Je l'avais bien dit qu'il y avait d'autres méthodes. :D
 
 
PS2 : Au fait, quelque soit la méthode choisit, il faut toujours commencer par virer les espaces de début et fin du texte ( trim ) et si on veut éviter tous les problèmes, il faut aussi vérifier que le format du texte est bon (chiffres + caractère "." + chiffres + caractère "." + chiffres + caractère "." + chiffres)


Message édité par omega2 le 07-01-2009 à 19:00:41
Reply

Marsh Posté le 07-01-2009 à 20:18:16    

Si t'es allergique aux regexp :
explode() sur ton ip avec le delimiteur '.'
tu changes la 4eme valeur (car c'est toujours celle là qui t'intéresse)
et tu implode() à nouveau avec '.'

Reply

Sujets relatifs:

Leave a Replay

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