From 1ea8dddbc4d2ffe86d431d7e76dcec798ef45743 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 31 Mar 2015 13:21:51 +0000 Subject: [PATCH] move convert_ipv6_to_128bit,convert_128bit_to_ipv6 to interfaces.inc --- src/etc/inc/interfaces.inc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index c01ee2ca5..615560098 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -43,6 +43,38 @@ function return_hex_ipv4($ipv4) { return (sprintf("%02x%02x%02x%02x", $ip4arr[0], $ip4arr[1], $ip4arr[2], $ip4arr[3])); } +function convert_ipv6_to_128bit($ipv6) { + if(!is_ipaddrv6($ipv6)) + return(false); + + $ip6arr = array(); + $ip6prefix = Net_IPv6::uncompress($ipv6); + $ip6arr = explode(":", $ip6prefix); + /* binary presentation of the prefix for all 128 bits. */ + $ip6prefixbin = ""; + foreach($ip6arr as $element) { + $ip6prefixbin .= sprintf("%016b", hexdec($element)); + } + return($ip6prefixbin); +} + +function convert_128bit_to_ipv6($ip6bin) { + if(strlen($ip6bin) <> 128) + return(false); + + $ip6arr = array(); + $ip6binarr = array(); + $ip6binarr = str_split($ip6bin, 16); + foreach($ip6binarr as $binpart) + $ip6arr[] = dechex(bindec($binpart)); + $ip6addr = Net_IPv6::compress(implode(":", $ip6arr)); + + return($ip6addr); +} + + + + function interfaces_bring_up($interface) { if(!$interface) { log_error(gettext("interfaces_bring_up() was called but no variable defined."));