. //============================================================================ /** * @copyright Francois Laupretre * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, V 2.0 * @category phool * @package phool */ //============================================================================ namespace Phool\Network; class IP { public function network($ip,$mask) { self::validate($ip); self::validate($mask); $a_ip=self::stringToArray($ip); $a_mask=self::stringToArray($mask); $a_res=array(); for ($i=0;$i<4;$i++) $a_res[]=intval($a_ip[$i]) & intval($a_mask[$i]); return self::arrayToString($a_res); } //----------- public function validate($string) { $a=self::stringToArray($string); for ($i=0;$i<4;$i++) { $val=$a[$i]; if ((!is_numeric($val))||($val < 0) || ($val > 255)) throw new \Exception("$val/$string: Invalid IP address"); } return $string; } //----------- public function stringToArray($string) { $res=explode('.',$string); if (count($res)!==4) throw new \Exception("$string: Invalid IP address"); return $res; } //----------- public function arrayToString($a) { return implode('.',$a); } //----------- } ?>