Salve a tutti,
avrei una curiosità da togliere.... allora ho uno script in javascript trovato su internet che mi trasforma un ip in decimale....
codice:
<script language="javascript">
function Ip2Long(ip){
try{
var sip = ip.split('.');
var lRet = parseFloat(sip[0] * 256 * 256 * 256)
+ parseFloat(sip[1] * 256 * 256)
+ parseFloat(sip[2] * 256)
+ parseFloat(sip[3])
return lRet;
}
catch(err){
return 0;
}
}
alert(Ip2Long('192.168.1.1'));
</script>
il risultato è 3232235777
se converto lo stesso ip con la funzione predefinita di php (ip2long()), il risultato è diverso -1062731519.
Allora nella funzione in javascript, senza neanche sapere quello che ho fatto, ho messo un and binario nel return
return lRet & lRet;
e adesso cosi lo script funziona, mi da lo stesso risultato di php.... qualcuno di voi saprebbe spiegarmi che fa aggiungedo l'AND binario??
e poi perchè mi viene fuori un valore negativo?? se confrontiamo in binario questo valore 3232235777, dovrebbe uscire fuori sempre lo stesso.