Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JE PENS QUE $LONGIP EST FAIT DE CETTE MANIERE :


Information sur la source

Catégorie :Tutoriaux Classé sous : iplong, longip, ip Niveau : Débutant Date de création : 10/08/2004 Date de mise à jour : 16/12/2005 10:37:19 Vu : 3 103

Note :
Aucune note

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

bah ma 1ere, ce code fait pareil que $longip. j'ai eu des problemes au debut je savais pas me servir de $gettok il fallait virer les après virgule sans arrondir donc $round n'allez pas bref...
sur papier c'est bien beau mais arriver a le scripté :D bref je voulais montrer le fonctionnement mais avant tout c'etait perso.
quelques notes :
pour passer d'une ip a.b.c.d à h :
h = (a*(256^3)) + (b*(256^2)) + (c*256) + d
pour passer de h à a.b.c.d :
a = h / 256^3
b = (h - (a*(256^3))) / 256^2
c = (h - ((a*(256^3)) + (b*(256^2)))) / 256
d = h - ((a*(256^3)) + (b*(256^2)) + (c*256))
si jme suis pas planter, sdois etre bon. => le code..
 

Source

  • alias iplong {
  • var %y1 $calc(256^3)
  • var %y2 $calc(256^2)
  • var %y3 256
  • var %ip- $1
  • if ( . isin %ip- ) { return $vers(%ip-) }
  • if ( . !isin %ip- ) { return $revers(%ip-) }
  • }
  • alias revers {
  • var %h $1
  • var %a $int($calc( %h / %y1 ) )
  • var %b $int($calc( ( %h - ( %a * %y1 ) ) / %y2 ) )
  • var %c $int($calc( ( %h - ( ( %a * %y1 ) + ( %b * %y2 ) ) ) / %y3 ) )
  • var %d $calc( %h - ( ( %a * %y1 ) + ( %b * %y2 ) + ( %c * %y3 ) ) )
  • return %a $+ $chr(46) $+ %b $+ $chr(46) $+ %c $+ $chr(46) $+ %d
  • }
  • alias vers {
  • var %h- $1
  • return $calc(( $gettok( %h- ,1,46) * %y1 ) + ( $gettok( %h- ,2,46) * %y2 ) + ( $gettok( %h- ,3,46) * %y3 ) + ( $gettok( %h- ,4,46) ))
  • }
  • ;-----------------------------------------------------------------
  • ;----"optimisation"----la même chose mais en beaucoup mieux-------
  • alias iplong {
  • if ( . isin $1 ) { return $ipcc($1) }
  • if ( . !isin $1 ) { return $ipll($1) }
  • }
  • alias ipll {
  • var %u 1, %lip $base($1,10,2,32)
  • while (32 >= %u) {
  • var %rez = %rez $+ $base($mid(%lip,%u,8),2,10) $+ $iif(%u <= 24,., )
  • inc %u 8
  • }
  • return %rez
  • }
  • alias ipcc {
  • var %i 1 | while (%i <= 4) {
  • var %rez = %rez $+ $base($gettok($1,%i,46),10,2,8)
  • inc %i
  • }
  • return $base(%rez,2,10)
  • }
alias iplong {
  var %y1 $calc(256^3)
  var %y2 $calc(256^2)
  var %y3 256
  var %ip- $1
  if ( . isin %ip- ) { return $vers(%ip-) }
  if ( . !isin %ip- ) { return $revers(%ip-) }
}
alias revers {
  var %h $1
  var %a $int($calc( %h / %y1 ) )
  var %b $int($calc( ( %h - ( %a * %y1 ) ) / %y2 ) )
  var %c $int($calc( ( %h - ( ( %a * %y1 ) + ( %b * %y2 ) ) ) / %y3 ) )
  var %d $calc( %h - ( ( %a * %y1 ) + ( %b * %y2 ) + ( %c * %y3 ) ) )
  return %a $+ $chr(46) $+ %b $+ $chr(46) $+ %c $+ $chr(46) $+ %d
}
alias vers {
  var %h- $1
  return $calc(( $gettok( %h- ,1,46) * %y1 ) + ( $gettok( %h- ,2,46) * %y2 ) + ( $gettok( %h- ,3,46) * %y3 ) + ( $gettok( %h- ,4,46) ))
}

;-----------------------------------------------------------------
;----"optimisation"----la même chose mais en beaucoup mieux-------

alias iplong {
  if ( . isin $1 ) { return $ipcc($1) }
  if ( . !isin $1 ) { return $ipll($1) }
}
alias ipll {
  var %u 1, %lip $base($1,10,2,32)
  while (32 >= %u) {
    var %rez = %rez $+ $base($mid(%lip,%u,8),2,10) $+ $iif(%u <= 24,., )
    inc %u 8
  }
  return %rez
}
alias ipcc {
  var %i 1 | while (%i <= 4) {
    var %rez = %rez $+ $base($gettok($1,%i,46),10,2,8)
    inc %i
  }
  return $base(%rez,2,10)
}

Conclusion

$iplong(a.b.c.d) = $longip(a.b.c.d)
$iplong(158.152.50.239)  retourne 2660774639
$iplong(2660774639)       retourne 158.152.50.239
voilà :) Merci de laisser des msg si une amélioration est à faire, ça me ferait plaisir de la conaitre. (jai mis la source dans tuto pke je savais pas où la mettre à part là)
au fait les dialog c pas mon truc et là ça sert a rien donc..
 

Historique

11 août 2004 07:38:14 :
j'ai mis var a la place de set ensuite return a la place de say.
21 septembre 2004 06:07:26 :
mis des $int a la place de $gettok, "Retourne la partie entière d'un nombre flottant sans arrondi."
16 décembre 2005 10:37:20 :
j'ai laisser l'ancienne methode, et fais une nouvelle qui se raproche plus de la réalité.

Commentaires et avis

signaler à un administrateur
Commentaire de ReMi34 le 10/08/2004 10:54:55

C'est horrible tout ces set %var de partout !!!!!
Utilise les Hash Tables :)
Et puis exprime toi mieux !

signaler à un administrateur
Commentaire de PaDa le 10/08/2004 12:38:46

évite les /set lorsqu'ils sont pas utiles , utilise plutot des variables locales ( var %x = gnagna ) qui polluent pas le script ...

ensuite plutot que /say utilise return comme ca on peut se servir de ton code dans un remote comme on veut

enfin , ce passage était déja présent sur le site , codé un peu plus élégamment par Kerrigan :)
http://www.ircfr.com/code.aspx?ID=15005

pas testé j'sais pas si il marche ...bonne continuation en tout cas héhé :)

signaler à un administrateur
Commentaire de skotmarud le 10/08/2004 12:57:06

Merci des cmts. je sais pas encore ce qu'est "Hash Tables" je vais me pencher sur le sujet, javais pas vu la source de Kerrigan et je suis incapable de la comprendre donc d'en faire autant. pour moi l'expression n'a pas d'importance, si ça en fait souffrir quelques-uns desolé :X

signaler à un administrateur
Commentaire de PaDa le 10/08/2004 15:05:43

en fait c'était pas tellement une critique le fait que Kerrigan l'ait déja fait , j'ai regardé sur d'autres sites j'ai encore vu une troisième version et chaque fois c'est codé sensiblement différemment donc ca peut etre intéressant ...
pense quand même aux vars locales et au return ^^ :
quand tu dis :
$iplong(158.152.50.239) retourne 2660774639
$iplong(2660774639) retourne 158.152.50.239
en fait ton snippet ne le "retourne" pas mais fait un /say ce qui rend son utilisation impossible dans un remote etc ... faut juste remplacer le say final par return et ensuite bah //Echo -a > mon ip est $iplong(gnagna) marchera , ca retournera véritablement une valeur ...

signaler à un administrateur
Commentaire de Kerrigan le 10/08/2004 20:05:30

en skotmarud je fais une division euclienne, je recupere le reste et je fais encore une division euclidiene et deux division plus tard j'ai l'addresse ip sous le format voulue.

C'est tres simple en fait. En plus ta source est plus courte. Et dans la mesure ou elle est optimisable c'est vraiment bien.

signaler à un administrateur
Commentaire de tofu le 11/08/2004 12:20:16

alias iplong {
    var %y1 $calc(256^3)
    var %y2 $calc(256^2)
    var %y3 256
    var %ip- $1
    if ( . isin %ip- ) { return $vers(%ip-) }
    if ( . !isin %ip- ) { return $revers(%ip-) }
}
--
alias iplong { var %y1 $calc(256^3), %y2 $calc(256^2), %y 256, %ip- $1 |
$iif($chr(46) isin %ip-,return $vers(%ip-),return $revers(%ip-) }

etc ...
sinon, ça sert à quoi $longip() concrètement ?

signaler à un administrateur
Commentaire de VestaX le 16/08/2004 18:50:49

je veux pas prendre sa déffense, mis il as bien précisé:
Je pense que $longip est fait de cette maniere!! Donc ca veux bien dire cque ca veux dire.

Alors les pros?? on est tous passé par là il me semble non? alors on se calme svp merci ("_)

signaler à un administrateur
Commentaire de PaDa le 16/08/2004 18:56:02

pour une fois que tlm s'accorde a dire que cette source est intéressante même si optimisable ... VestaX tu as lu les commentaires en entier avant de poster ?

signaler à un administrateur
Commentaire de tofu le 16/08/2004 18:57:25

il l'a bien fait dans l'esprit et dans les calculs, c'est juste le code qui manque d'optimisation. tout le monde est resté calme jusqu'à preuve du contraire, c'est toi qui vient mettre le feu aux poudres. ça fait déjà deux fois. apprends à lire avant de reply stp.

signaler à un administrateur
Commentaire de Mulder44 le 26/09/2006 14:47:07

je veux bien la suite pour comprendre moi j'ai un egg qui decode en bruteforce ca ***.***.***.***

signaler à un administrateur
Commentaire de PaDa le 26/09/2006 17:36:18

lol.

(ton comment ne veut rien dire... tu bruteforces quoi ? tu parles de quoi ?)

signaler à un administrateur
Commentaire de skotmarud le 28/09/2006 10:32:48

salut,
il parle sans doute du hash crc32 de wanadoo pour les ip ...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Adresse ip sous mirc [ par cuba1393 ] Bonjour a tousVoila mon probleme:je desire recupérer l'adresse ip des personnes présentes sur le chan et l'écrire dans un fichier avec le nickje pense comment decodé lhost sur voila/wana [ par boulette ] j'aimerai savoir comment decode l'host sur voila/wanadoo pour remonte jusqu'a l'ip ou meme yorai t-il pas une commande une fonction pour trouve l'ip Help problème Dialog !!!! [ par Ziboo ] Voilà je joue a counter strike et je fais des train et il faut a chaque fois que je donne l'IP de notre server avec le pass.Bon voilà mon scriptServeu Liste ip d'un chan [ par PsYKooZ ] Bonjour à tous !J'aimerais savoir si vous sauriez faire un script qui liste toute les ip de chaques user dans un fichier txt ?&gt; Ca m'aiderai bcp !& change la fin d'une variante [ par Leon1533 ] Voila j'ai un pb je voudrait changer la fin d'une variante ex: %ip = 120.20.20.39 le changer en 120.20.20.1 ou 120.20.20.254en sachan que %ip change Comment utiliser un fichier source ... [ par nidala4 ] Je posséde Teamscript et je voudrais ajouter cet alias pour l'utiliser : http://www.ircfr.com/article.aspx?Val=851Il permet la conversion d'une IP lon classe d'IP bannie pour cause d'attaques [ par loran85 ] J'ai le message suivant lorsque je me connecte au serveur irc.voila.fr :Impossible de te connecter au serveur, tu es banni.Votre adresse "xxx.xxx.xxx. IP2NICK [ par ypnoz ] salut tout le monde, j'utilise Nonamescript , qui comprend IP2NICK (on rentre une Ip et il nous donne le nick) ...impossible de le faire fonctionner, Nouvelle question [ par Sibelle07 ] J'espére que je vous ennuye pas trop avec mes questions , je suis un débutant depuis hier dans votre programamation , puis je voulais demandé deux tr trouver un ip [ par gotyka ] bonjour a vsj'aimerai savoir comment on fais pr trouver un ip sur mirc si kelk'un peut me donner un ptit coup de main ce serai sympa voila merci @+<im


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.