diff options
Diffstat (limited to 'ldap-site-mngmt/webinterface/lib/syntax_check.php')
-rw-r--r-- | ldap-site-mngmt/webinterface/lib/syntax_check.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ldap-site-mngmt/webinterface/lib/syntax_check.php b/ldap-site-mngmt/webinterface/lib/syntax_check.php index 35924e3c..48926260 100644 --- a/ldap-site-mngmt/webinterface/lib/syntax_check.php +++ b/ldap-site-mngmt/webinterface/lib/syntax_check.php @@ -88,6 +88,40 @@ function check_netip_syntax($IP) } # MAC Adresse +function check_mac_syntax($MAC) +{ + if($this->CLEAR) { $this->clear_error();} + + $len = strlen($MAC); + if( $len != 17 ){ + $this->ERROR = "check_mac_syntax: too long [$MAC][$len]"; + return false; + } + + $badcharacter = eregi_replace("([0-9a-fA-F\:]+)","",$MAC); + if(!empty($badcharacter)){ + $this->ERROR = "check_mac_syntax: Bad data in MAC address [$badcharacter]"; + return false; + } + + $chunks = explode(":",$MAC); + $count = count($chunks); + if ($count != 6){ + $this->ERROR = "check_mac_syntax: not in format hx:hx:hx:hx:hx:hx [$MAC]"; + return false; + } + foreach ($chunks as $chunk){ + $chunklen = strlen($chunk); + if( $len != 2 ){ + $this->ERROR = "check_mac_syntax: too long [$MAC][$len]"; + return false; + } + } + + return true; + +} + # Domainname |