ip binary
Hoe maak ik een ip in php Binary Octets? dus een calculator
Gewijzigd op 28/09/2010 15:27:24 door Daniel Elders
decoct().
bedoel hoe je van een ip adres daar een binary van maakt dus met 0en en 1en
decbin().
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function ipToBin($ip) {
// De stukjes
$parts = explode('.', $ip);
// Maak van elk stukje een hex (ip heeft voor elk stukje een max van 255, dus 2 karakters in hex
$parts = array_map('dechex', $parts);
// Maak van een string van 1 karakter 1 van 2 karakters
$pad = function($str) { return str_pad($str, 2, '0', STR_PAD_LEFT); };
$parts = array_map($pad, $parts);
// Maak er 1 hex van
$hex = implode('', $parts);
// En converteer die naar bin
return base_convert($hex, 16, 2);
}
function binToIp($bin) {
$hex = base_convert($bin, 2, 16);
$parts = str_split($hex, 2);
$parts = array_map('hexdec', $parts);
return implode('.', $parts);
}
?>
function ipToBin($ip) {
// De stukjes
$parts = explode('.', $ip);
// Maak van elk stukje een hex (ip heeft voor elk stukje een max van 255, dus 2 karakters in hex
$parts = array_map('dechex', $parts);
// Maak van een string van 1 karakter 1 van 2 karakters
$pad = function($str) { return str_pad($str, 2, '0', STR_PAD_LEFT); };
$parts = array_map($pad, $parts);
// Maak er 1 hex van
$hex = implode('', $parts);
// En converteer die naar bin
return base_convert($hex, 16, 2);
}
function binToIp($bin) {
$hex = base_convert($bin, 2, 16);
$parts = str_split($hex, 2);
$parts = array_map('hexdec', $parts);
return implode('.', $parts);
}
?>
Volgens mij is dit de beste manier
Gewijzigd op 28/09/2010 17:35:51 door Pim -
Oh die van mij doet het binair. Wat zijn binary octets? Gewoon een acht-tallig getal?
voor ip6 adressen is base_convert niet toereikend (grote getallen worden afgerond) en heb je dus een gmp libary nodig (of je moet base_convert herschrijven wat ik ooit heb gedaan om berekeningen op ip adressen uit te voeren)
Pim de Haan op 28/09/2010 17:04:50:
Oh die van mij doet het binair. Wat zijn binary octets? Gewoon een acht-tallig getal?
Ja.
octet is base-8
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function ipToOct($ip) {
// De stukjes
$parts = explode('.', $ip);
// Maak van elk stukje een hex (ip heeft voor elk stukje een max van 255, dus 2 karakters in hex
$parts = array_map('dechex', $parts);
// Maak van een string van 1 karakter een van 2 karakters
$pad = function($str) { return str_pad($str, 2, '0', STR_PAD_LEFT); };
$parts = array_map($pad, $parts);
// Maak er 1 hex van
$hex = implode('', $parts);
// En converteer die naar oct
return base_convert($hex, 16, 8);
}
function octToIp($oct) {
$hex = base_convert($oct, 8, 16);
$parts = str_split($hex, 2);
$parts = array_map('hexdec', $parts);
return implode('.', $parts);
}
?>
function ipToOct($ip) {
// De stukjes
$parts = explode('.', $ip);
// Maak van elk stukje een hex (ip heeft voor elk stukje een max van 255, dus 2 karakters in hex
$parts = array_map('dechex', $parts);
// Maak van een string van 1 karakter een van 2 karakters
$pad = function($str) { return str_pad($str, 2, '0', STR_PAD_LEFT); };
$parts = array_map($pad, $parts);
// Maak er 1 hex van
$hex = implode('', $parts);
// En converteer die naar oct
return base_convert($hex, 16, 8);
}
function octToIp($oct) {
$hex = base_convert($oct, 8, 16);
$parts = str_split($hex, 2);
$parts = array_map('hexdec', $parts);
return implode('.', $parts);
}
?>
Gewijzigd op 28/09/2010 21:39:57 door Pim -
(reactie verstuurt via mobiel)
Gewijzigd op 28/09/2010 21:29:26 door Daniel Elders