
IP codering
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.

IP codering
In mijn database vind ik de IP's terug als codes waar ik niets mee kan, zoals 3ea3ae41. Maar ik wil toch echt aan de hand van echte IP's terug kunnen zoeken in de posts! Hoe zet ik dan bestaande IP's om in deze codes zodat ik ze kan vergelijken? 

Uit includes/functions.php:
Zoals je ziet wordt het omgezet in hexidecimale cijfers, dus het moet te berekenen zijn.
Logischerwijs zou ik het splitsen in vier stukjes van elk 2 hexadecimale getallen:
3e.a3.ae.41
Omgerekend wordt dit:
3e = 3x16 + 14 = 62
a3 = 10x16 + 3 = 163
ae = 10x16 + 14 = 174
41 = 4x16 + 1 = 65
Dus gedecodeerd is het ip-adres dus 62.163.174.65
Voor de mensen die niet bekend zijn met hexadecimale cijfers:
(1 = 1 ; 2 = 2 ; 3 = 3 ; 4 = 4 ; 5 = 5 ; 6 = 6 ; 7 = 7 ; 8 = 8 ; 9 = 9)
a = 10
b = 11
c = 12
d = 13
e = 14
f = 15
Waarbij je het laatste getal maal (16-tot-de-macht-0 = ) 1 doet, het enelaatste getal maal (16-tot-de-macht-1 = ) 16, het getal daarvoor maal (16-tot-de-macht-2 = ) 256 etc.
Hier geldt dus echter alleen maar maal 1 en maal 16 omdat het telkens maar 2 bij elkaar horende getallen zijn.
Interesting note: met hexadecimale getallen kun je met 2 cijfers van 0 tot het decimale getal 255 (=ff) schrijven. Scheelt je dus een cijfertje in je codering, oftewel kan wat bits schelen als je veel cijfers moet gebruiken in codes
Code: Selecteer alles
function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}
function decode_ip($int_ip)
{
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}
Logischerwijs zou ik het splitsen in vier stukjes van elk 2 hexadecimale getallen:
3e.a3.ae.41
Omgerekend wordt dit:
3e = 3x16 + 14 = 62
a3 = 10x16 + 3 = 163
ae = 10x16 + 14 = 174
41 = 4x16 + 1 = 65
Dus gedecodeerd is het ip-adres dus 62.163.174.65
Voor de mensen die niet bekend zijn met hexadecimale cijfers:
(1 = 1 ; 2 = 2 ; 3 = 3 ; 4 = 4 ; 5 = 5 ; 6 = 6 ; 7 = 7 ; 8 = 8 ; 9 = 9)
a = 10
b = 11
c = 12
d = 13
e = 14
f = 15
Waarbij je het laatste getal maal (16-tot-de-macht-0 = ) 1 doet, het enelaatste getal maal (16-tot-de-macht-1 = ) 16, het getal daarvoor maal (16-tot-de-macht-2 = ) 256 etc.
Hier geldt dus echter alleen maar maal 1 en maal 16 omdat het telkens maar 2 bij elkaar horende getallen zijn.
Interesting note: met hexadecimale getallen kun je met 2 cijfers van 0 tot het decimale getal 255 (=ff) schrijven. Scheelt je dus een cijfertje in je codering, oftewel kan wat bits schelen als je veel cijfers moet gebruiken in codes

Wijziging: Interesting note 2: de hexadecimale cijfers worden ook gebruikt om kleuren te definieren in HTML, zoals bijv. FF00FF, de eerste 2 cijfers slaan op de hoeveelheid rood, de tweede 2 cijfers op de hoeveelheid groen en de laatste 2 cijfers op de hoeveelheid blauw. Het definieert dus simpel gezegd de RGB-waarden 

Laatst gewijzigd door kolly op 08 jul 2003, 14:25, 5 keer totaal gewijzigd.
Pfft, dit volg ik niet hoor, en als ik het al zou volgen zou het me teveel tijd kosten. Is er hier:
geen scriptje van te schrijven dat dit automatisch kan doen?
Ik heb wel deze en deze pagina gevonden, maar die doen niet wat ik wil, namelijk 80.100.83.151 omzetten in het formaat van phpBB.
Code: Selecteer alles
function decode_ip($int_ip)
{
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
}
Ik heb wel deze en deze pagina gevonden, maar die doen niet wat ik wil, namelijk 80.100.83.151 omzetten in het formaat van phpBB.

Tsja in javascript ben ik niet thuis, dat zul je iemand anders moeten vragen, hehe.
Maar je moet trouwens niet decode gebruiken, maar encode om je IP-adres in phpbb-formaat om te zetten, dit deel dus:
Code: Selecteer alles
function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}
Dan moet je dus gewoon 80.100.83.151 omrekenen naar hexadecimaal formaat. Vooruit ik zal je even helpen (ik heb een paar biertjes op, dus misrekeningen moet je me niet kwalijk nemen

80 = 5x16 + 0x1 = 50
100 = 6x16 + 4x1 = 64
83 = 5x16 + 3x1 = 53
151 = 9x16 + 7x1 = 97
Dus 80.100.83.151 = 50645397 in hexadecimale getallen 8)
Dit volgt trouwens ook uit je IP Address Converter in je 2e linkje.
Laatst gewijzigd door kolly op 08 jul 2003, 22:45, 3 keer totaal gewijzigd.
- John_de_Vries
- Berichten: 246
- Lid geworden op: 20 feb 2003, 12:58
- Locatie: Oosterhout
- Contacteer:
Ik dacht laat me deze link maar eens plaatsen voor Kolly.
Misschien had je hem al maar allee
http://www.ascii.cl/
Altijd gemakkeljk om hem te hebben.
John
Misschien had je hem al maar allee

http://www.ascii.cl/
Altijd gemakkeljk om hem te hebben.
John
- thomasdebans
- Berichten: 15
- Lid geworden op: 12 okt 2003, 22:25
Een nieuw password ja.LadyBug schreef:Tuurlijk kunnen die wachtwoorden gedecodeerd worden.
Het leek me al logish omdat bij het heropvragen van je password hij je ook gewoon toegezonden word.
Je haalt het een beetje door elkaar LadyBug, thomasdebans had gelijk wat betreft de MD5 codering van passworden, die is er alleen om te coderen en niet voor decoderen. Alleen met brute processorkracht en véél tijd is dit te kraken.
De IP's zijn gewoon in een ander getallenstelsel opgeslagen (hexadecimaal) om ruimte te sparen in de database, dit kan dus gewoon worden teruggerekend. Mijn vraag was gewoon hoe dat het makkelijkst kon, want het is nogal een k*twerkje...

Hmmm....
Zoals ik al deed vermoeden heb ik van dat coderen niet zoveel kaas gegeten.
Mijn oom daarintegen wel en vandaar dtaik hem even gebeld had want ik wou het antwoord ook wel weten.
Hij kwam dus met de opmerking dat je het wel degelijk kan decoderen.
Laten we even afwachten op de beloofde mail
Maarre ik weet het nu dus ook niet
Zoals ik al deed vermoeden heb ik van dat coderen niet zoveel kaas gegeten.
Mijn oom daarintegen wel en vandaar dtaik hem even gebeld had want ik wou het antwoord ook wel weten.
Hij kwam dus met de opmerking dat je het wel degelijk kan decoderen.
Laten we even afwachten op de beloofde mail

Maarre ik weet het nu dus ook niet

Dat zou kunnen ja, maar waarom zou je dat doen? Ik zou het als member een erg onprettige gedachte vinden als de administrator mijn wachtwoord kon lezen, en dat is nog zachtjes uitgedrukt. Die MD5 codering is er niet voor niets, buiten het hackers-aspect ook vooral ter beveiliging tegen de forumleiding. Als iets onmogelijk te achterhalen is, is er immers ook geen verleiding om het te proberen.