]> git.mxchange.org Git - friendica.git/blob - library/HTMLPurifier/AttrDef/URI/IPv4.php
mistpark 2.0 infrasturcture lands
[friendica.git] / library / HTMLPurifier / AttrDef / URI / IPv4.php
1 <?php
2
3 /**
4  * Validates an IPv4 address
5  * @author Feyd @ forums.devnetwork.net (public domain)
6  */
7 class HTMLPurifier_AttrDef_URI_IPv4 extends HTMLPurifier_AttrDef
8 {
9
10     /**
11      * IPv4 regex, protected so that IPv6 can reuse it
12      */
13     protected $ip4;
14
15     public function validate($aIP, $config, $context) {
16
17         if (!$this->ip4) $this->_loadRegex();
18
19         if (preg_match('#^' . $this->ip4 . '$#s', $aIP))
20         {
21                 return $aIP;
22         }
23
24         return false;
25
26     }
27
28     /**
29      * Lazy load function to prevent regex from being stuffed in
30      * cache.
31      */
32     protected function _loadRegex() {
33         $oct = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'; // 0-255
34         $this->ip4 = "(?:{$oct}\\.{$oct}\\.{$oct}\\.{$oct})";
35     }
36
37 }
38
39 // vim: et sw=4 sts=4