Penso sia una vecchia discussione, giusto ?
In pratica il sistema è noto almeno dal 2002, allorchè lugdunummaster lo pubblicò sul suo bellissimo sito, ormai definitivamente chiuso dopo le note vicende sui server dell'estate scorsa.
A quei tempi server che si avvalevano del software Lugdunum come AdaNet e Gruk erano colossi da ... 40-50.000 utenti :P
Fra le cose conservate di quei tempi (per fortuna) lo script copiato proprio dalla pagina del sito grazie al quale viene svolta tutta la trasformazione descritta da Raid.
Vi basterà copiare il testo su un editor e salvarlo come .htm :oki:
<SCRIPT LANGUAGE="JavaScript1.1">
<!--
function calcID(f) {
var aux = (f.IP4.value<<23)+(f.IP3.value<<15)+(f.IP2.value<<7)+(f.IP1.value>>1);
var last = f.IP1.value & 1 ;
var cinq = aux % 5 ;
last += 2*cinq ;
aux = (aux - cinq)/5 ;
f.ID.value = aux.toString(10) + last.toString(10) ;
}
function calcIP(f) {
f.IP1.value = f.ID.value & 255 ;
f.IP2.value = (f.ID.value >>8) & 255 ;
f.IP3.value = (f.ID.value >>16) & 255 ;
f.IP4.value = (f.ID.value >>24) & 255 ;
}
function IP(f,c)
{
var n;
if (c == 1) n = f.IP1.value;
if (c == 2) n = f.IP2.value;
if (c == 3) n = f.IP3.value;
if (c == 4) n = f.IP4.value;
if (n < 0) {
alert("la valeur doit etre comprise entre 0 et 255");
n = 0 ;
}
if (n > 255) {
alert("la valeur doit etre comprise entre 0 et 255");
n = 255;
}
if (c == 1) f.IP1.value = n;
if (c == 2) f.IP2.value = n;
if (c == 3) f.IP3.value = n;
if (c == 4) f.IP4.value = n;
calcID(f);
}
//----------------- -->
</SCRIPT>
<form NAME="IDtoIP" title="utilitaire pour déterminer l'IP en fonction de l'ID edonkey">
<label for="ID">ID edonkey : </label><input type="text" size="11" name="ID" maxlength="11" value="348954942" onChange="calcIP(this.form)" class="textbox">
<fieldset><legend>Adresse IP</legend>
<label for="IP1">adresse IP :
<input type=text size=3 name="IP1" maxlength=3 value=62 onChange="IP(this.form,1)" class="textbox"></label>
<label for="IP2">•
<input type=text size=3 name="IP2" maxlength=3 value=161 onChange="IP(this.form,2)" class="textbox"></label>
<label for="IP3">•
<input type=text size=3 name="IP3" maxlength=3 value=204 onChange="IP(this.form,3)" class="textbox"></label>
<label for="IP4">•
<input type=text size=3 name="IP4" maxlength=3 value=20 onChange="IP(this.form,4)" class="textbox"></label>
</fieldset>
</form>