begin process at 2010 02 09 20:07:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > JE PENS QUE $LONGIP EST FAIT DE CETTE MANIERE :

JE PENS QUE $LONGIP EST FAIT DE CETTE MANIERE :


 Information sur la source

Note :
Aucune note
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 303

Auteur : skotmarud

Ecrire un message privé
Site perso
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é.

 Sources du même auteur

SCANNER IP , PORT , IPLOOKUP
Source avec une capture CLIENT ET SERVEUR PERSO SOCKET (NON TERMINÉS)
Source avec une capture [CODE MORSE] ENCODE/DECODE SANS $REPLACE
Source avec une capture DIALOG DE COULEURS :|
Source avec une capture MINI TELNET

 Sources de la même categorie

TOUT SAVOIR SUR L'ECRITURE EN COULEUR par SaD_AnG3L
Source avec Zip Source avec une capture [TUTORIAL] LECTEUR MP3 EN DIALOG par fjxokt
Source avec une capture "RESIZE" SANS DLL par IceTempest
MINI TUTO SUR L'OPTIMISATION par tofu
Source avec Zip TUTORIAL PICWIN, APPROFONDISSEMENT par KiNdErMaXi

 Sources en rapport avec celle ci

SCANNER IP , PORT , IPLOOKUP par skotmarud
SERVOX : SCANNEUR ET IDENTIFICATEUR DE SERVEURS HTTP par Sverdlovsky

Commentaires et avis

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 !

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é :)

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

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

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.

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 ?

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 ("_)

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 ?

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.

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

Commentaire de PaDa le 26/09/2006 17:36:18

lol.

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

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

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales