Je pens que $longip est fait de cette maniere :

Contenu du snippet

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 / Exemple :


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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.