SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Français/French

Reply
 
Thread Tools Display Modes
Old 19/06/2012, 03:41 PM   #1
psymono
Big Clucker
 
Join Date: Oct 2011
Posts: 143
Reputation: 1
Default Obtenir seulement les 2 premiers chiffres d'une IP

Bonsoir,

Je souhaiterais avoir de l'aide sur une petite chose, Comment on peut obtenir les 2 premiers chiffres d'une ip

Ex : J'ai l'ip 78.21.30.47 et je veut obtenir dans mon "new ip;" seulement les 2 premiers chiffres : ici mon "new ip" sera = a "78.21"

Comment puis-je faire pour avoir sa ? J'ai essayer beaucoup de chose mais je n'arrive pas a trouver.

Merci a vous.
psymono is offline   Reply With Quote
Old 19/06/2012, 05:22 PM   #2
mehdi-jumper
High-roller
 
mehdi-jumper's Avatar
 
Join Date: Sep 2011
Location: New-Zealand
Posts: 1,894
Reputation: 51
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

dans ta déclaration de new ip, tu dois avoir new ip[UNNombre];

Remplace le nombre par celui que tu veux, il correspond au nombre de caracteres que tu aura
mehdi-jumper is offline   Reply With Quote
Old 19/06/2012, 05:36 PM   #3
Soap'
Gangsta
 
Soap''s Avatar
 
Join Date: Nov 2011
Posts: 858
Reputation: 10
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

En gros, tu met 5
Soap' is offline   Reply With Quote
Old 19/06/2012, 06:09 PM   #4
Varkoll_
High-roller
 
Varkoll_'s Avatar
 
Join Date: Dec 2009
Location: Peut-être pas sur Terre ?
Posts: 1,927
Reputation: 60
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

Tiens je te fait un C/C de mon main, j'y ai inséré la méthode pour pouvoir n'afficher que deux chiffres, après c'est à toi de l'adapter en fonction, et de le faire "un peu plus économe":
PHP Code:
main()
{
        new 
coco 4;
        
printf("Coco = %d"coco);
        new 
adresse GetVariableAddress(coco);
        
printf("Adresse de Coco = %d"adresse);
        @
ptr[adresse] = 8;
        
printf("Coco = %d"coco);
        new 
ip[16] = "192.168.1.1";
        new 
sp 0;
        new 
car;
        for(new 
0strlen(ip); i++)
        {
            if(
ip[i] == '.')
            {
                
sp++;
            }
            if(
sp == 2)
            {
                
car i;
                break;
            }
        }
        
strdel(ipcarstrlen(ip));
        
printf("Ma nouvelle ip est: %s"ip);

(P.S: Ne t'occupes pas des pointeurs c'est n'a rien à voir)
__________________
Varkoll_ is offline   Reply With Quote
Old 19/06/2012, 07:11 PM   #5
psymono
Big Clucker
 
Join Date: Oct 2011
Posts: 143
Reputation: 1
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

Ok merci c'est enfaite pour faire un ban de plage IP, je ferais donc /banip 127.0 et sa ban la plage ip 127.0 si quelqu'un a l'ip qui commence par 127.0 sa lui dit qu'il est ban, j'ai quelque idée.
psymono is offline   Reply With Quote
Old 19/06/2012, 07:42 PM   #6
Varkoll_
High-roller
 
Varkoll_'s Avatar
 
Join Date: Dec 2009
Location: Peut-être pas sur Terre ?
Posts: 1,927
Reputation: 60
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

Quote:
Originally Posted by psymono View Post
Ok merci c'est enfaite pour faire un ban de plage IP, je ferais donc /banip 127.0 et sa ban la plage ip 127.0 si quelqu'un a l'ip qui commence par 127.0 sa lui dit qu'il est ban, j'ai quelque idée.
Donc en gros tu as compris mon code ?
__________________
Varkoll_ is offline   Reply With Quote
Old 19/06/2012, 09:25 PM   #7
decondelite
High-roller
 
decondelite's Avatar
 
Join Date: Nov 2008
Location: France
Posts: 1,349
Reputation: 49
Default Re: Obtenir seulement les 2 premiers chiffres d'une IP

Leo, il y a une variante, mais peut-être moins optimale: c'est d'utiliser tout simplement strfind deux fois, puis d'utiliser strmid en utilisant le résultat du deuxième strfind comme longueur de chaine.

Perso je préfère cette méthode, car c'est plus compact et lisible en terme de longueur de code, et ça permet également de conserver intacte l'adresse IP originale tout en stockant la "range" dans une autre variable.
__________________
decondelite, A.K.A [BFV]Jarek[BFH]
The "Battlefield" server is now BACK in business!
Forums: http://forums.battlefieldsamp.com
Server IP: play.battlefieldsamp.com
decondelite is offline   Reply With Quote
Old 20/06/2012, 06:27 AM   #8
Varkoll_
High-roller
 
Varkoll_'s Avatar
 
Join Date: Dec 2009
Location: Peut-être pas sur Terre ?
Posts: 1,927
Reputation: 60
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

Je savais bien qu'il y avait d'autres moyens mais j'ai voulu faire le code "simpliste" pour que psymono comprennes mieux. Perso j'avais commencé avec un méthode se rapprochant de la tienne mais j'ai préféré faire comme cela
__________________
Varkoll_ is offline   Reply With Quote
Old 20/06/2012, 02:50 PM   #9
psymono
Big Clucker
 
Join Date: Oct 2011
Posts: 143
Reputation: 1
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

Quote:
Originally Posted by leo3412 View Post
Donc en gros tu as compris mon code ?
Oui j'ai a peut près compris mais ton GetVarriableAdresse remplace le GetPlayerIp ?
et ton strdel remplace quoi ?

Ya juste ces deux chose la sinon sa va.

EDIT : j'ai tout repris a ma sauce

Voilà ce que j'ai pour le moment : ( j'ai transformer sa en commande pour test ).

PHP Code:
    else if(strcmp(cmd"/test"true) == 0)
    {
      
//  new coco = 4;
    //    printf("Coco = %d", coco);
     //   new adresse = GetVariableAddress(coco);
        
new adresse[256];
        
GetPlayerIp(playerid,adresse,sizeof(adresse));
        
printf("Adresse de Coco = %s"adresse);
    
//    printf("Coco = %d", coco);
        
new ipmessage[16];
        
format(ipmessagesizeof(ipmessage), "%s"adresse);
        new 
ip[16] = ipmessage;
        new 
sp 0;
        new 
car;
        for(new 
0strlen(ip); h++)
        {
            if(
ip[h] == '.')
            {
                
sp++;
            }
            if(
sp == 2)
            {
                
car h;
                break;
            }
        }
        
strdel(ipcarstrlen(ip));
        
printf("Ma nouvelle ip est: %s"ip);
        return 
1;
    } 
Seul truc c'est que j'ai cette erreur j'arrive pas à la réglé...

error 008: must be a constant expression; assumed zero ("new ip[16] = ipmessage;" )

Merci.

Last edited by psymono; 20/06/2012 at 03:46 PM.
psymono is offline   Reply With Quote
Old 21/06/2012, 09:04 AM   #10
Varkoll_
High-roller
 
Varkoll_'s Avatar
 
Join Date: Dec 2009
Location: Peut-être pas sur Terre ?
Posts: 1,927
Reputation: 60
Default Re : Obtenir seulement les 2 premiers chiffres d'une IP

L'adresse n'a rien à voir, tout ce qui t'intérésse dans mon code c'est:
PHP Code:
new ip[16] = "192.168.1.1"
        new 
sp 0
        new 
car
        for(new 
0strlen(ip); i++) 
        { 
            if(
ip[i] == '.'
            { 
                
sp++; 
            } 
            if(
sp == 2
            { 
                
car i
                break; 
            } 
        } 
        
strdel(ipcarstrlen(ip)); 
        
printf("Ma nouvelle ip est: %s"ip); 
__________________
Varkoll_ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Modification d'une commande /r Noliax8 Français/French 12 13/04/2012 07:58 AM
Orientation d'une caméra Julien Sirasor Français/French 7 16/01/2012 08:39 PM


All times are GMT. The time now is 08:23 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.