changed file headers & added AUTHORS file
[PHP-P10.git] / Uplink / IPAddr.class.php
index 217fbe727dfbecb7951d51b86329694925b11801..737cb9a7cf6cf42968215f1b639838f8d66e6389 100644 (file)
@@ -1,22 +1,19 @@
 <?php
-/********************************* PHP-P10 ******************************
- *    P10 uplink class by pk910   (c)2011 pk910                         *
- ************************************************************************
- *                          Version 2 (OOP)                             *
+/******************************* PHP-P10 v2 *****************************
+ * Copyright (C) 2011  Philipp Kreil (pk910)                            *
  *                                                                      *
- * PHP-P10 is free software; you can redistribute it and/or modify      *
+ * This program is free software: you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or    *
+ * the Free Software Foundation, either version 3 of the License, or    *
  * (at your option) any later version.                                  *
- *                                                                      *
+ *                                                                      * 
  * This program is distributed in the hope that it will be useful,      *
  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
  * GNU General Public License for more details.                         *
  *                                                                      *
  * You should have received a copy of the GNU General Public License    *
- * along with PHP-P10; if not, write to the Free Software Foundation,   *
- * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.       *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
  *                                                                      *
  ************************************************************************
  * 
@@ -34,7 +31,7 @@ class IPAddr {
        
        public function __construct($initial_value) {
                for($i = 0; $i < 8; $i++) {
-                       $ip6[$i] = 0;
+                       $this->ip6[$i] = 0;
                }
                if($initial_value == null) {
                        //nothing
@@ -49,7 +46,7 @@ class IPAddr {
        
        public function parseNumeric($numeric) {
                if(strlen($numeric) == 6) { //IPv4
-                       $value = self::numToInt($numeric);
+                       $value = Numerics::numToInt($numeric);
                        $this->ip6[6] = ($value & 0xffff0000) >> 16;
                        $this->ip6[7] = ($value & 0x0000ffff);
                        $this->addr_is_ipv6 = false;
@@ -60,12 +57,14 @@ class IPAddr {
                                        $rightBlocks = (strlen($numeric) - $i - 1) / 3;
                                        $skipBlocks = 8 - $j - $rightBlocks;
                                        $j += $skipBlocks;
+                                       $i++;
                                } else {
-                                       $value = self::numToInt($numeric[$i].$numeric[$i+1].$numeric[$i+2]);
+                                       $value = Numerics::numToInt($numeric[$i].$numeric[$i+1].$numeric[$i+2]);
                                        $this->ip6[$j++] = dechex($value);
                                        $i += 3;
                                }
                        }
+                       $this->addr_is_ipv6 = true;
                }
        }
        
@@ -82,6 +81,7 @@ class IPAddr {
                                $this->ip6[$j++] = hexdec($block);
                        }
                }
+               $this->addr_is_ipv6 = true;
        }
        
        public function parseIPv4($ipv4) {
@@ -90,6 +90,7 @@ class IPAddr {
                $this->ip6[6] |= intval($ipv4blocks[1]);
                $this->ip6[7] = intval($ipv4blocks[2]) << 8;
                $this->ip6[7] |= intval($ipv4blocks[3]);
+               $this->addr_is_ipv6 = false;
        }
        
        public function isIPv6() {