Umwandlung von IP-Adressen nach hexadezimal und zurück

Beitragvon peter » Samstag 31. Dezember 2011, 01:26

Das Speichern von IP-Adressen in einer Datenbank ist platzsparender möglich, als es bei der Verwendung eines 15 Zeichen umfassenden VARCHAR-Feldes der Fall ist. Dazu werden aus der IP-Adresse die Punkte entfernt und die einzelnen Werte als Hexadezimalwert gespeichert. Der größtmögliche dezimale Wert beträgt 255, also FF hexadezimal. Für Werte, die kleiner als dezimal 16 sind, wird einfach eine 0 vorangestellt. So besteht jeder Hexadezimalwert aus genau 2 Zeichen und die encodierte IP-Adresse somit aus 8 Zeichen.

Encodieren einer IP-Adresse
Code: Alles auswählen
function encodeIP(ip){
var ip_encoded='';
var arr_buffer = ip.split('.');
        for(var i=0;i<arr_buffer.length;++i){
                if(arr_buffer[i].length<2){
                   ip_encoded+=0;
                }
         ip_encoded+=parseInt(arr_buffer[i]).toString(16);
        }
return ip_encoded;
};


Decodieren einer IP-Adresse
Code: Alles auswählen
function decodeIP(ip){
var ip_decoded='';
while(ip.length>1){
          ip_decoded+=parseInt(ip.slice(0,2),16)+".";   
          ip=ip.substr(2);
   }   
ip_decoded=ip_decoded.substring(0,ip_decoded.length-1);
return ip_decoded;
};


So wird beispielsweise aus 192.168.1.2 der hexadezimale Wert c0a80102
Benutzeravatar
peter
Site Admin
 
Beiträge: 23
Registriert: Dienstag 27. Dezember 2011, 17:42
 

Zurück zu Sonstiges

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron