Multimag  0.2.992
ipv6.php
См. документацию.
1 <?php
2 // MultiMag v0.2 - Complex sales system
3 //
4 // Copyright (C) 2005-2018, BlackLight, TND Team, http://tndproject.org
5 //
6 // This program is free software: you can redistribute it and/or modify
7 // it under the terms of the GNU Affero General Public License as
8 // published by the Free Software Foundation, either version 3 of the
9 // License, or (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU Affero General Public License for more details.
15 //
16 // You should have received a copy of the GNU Affero General Public License
17 // along with this program. If not, see <http://www.gnu.org/licenses/>.
18 //
19 
21 class ipv6 {
22 
24  function is_ipv6($ip = "") {
25  if ($ip == '') {
26  return false;
27  }
28  if (substr_count($ip, ":") > 0 && substr_count($ip, ".") == 0) {
29  return true;
30  } else {
31  return false;
32  }
33  }
34 
36  function is_ipv4($ip = "") {
37  if ($ip == '') {
38  return false;
39  }
40  return !ipv6::is_ipv6($ip);
41  }
42 
44  function get_ip() {
45  return getenv("REMOTE_ADDR");
46  }
47 
49  function uncompress_ipv6($ip = "") {
50  if ($ip == '') {
51  return false;
52  }
53  if (strstr($ip, "::")) {
54  $e = explode(":", $ip);
55  $s = 8 - sizeof($e) + 1;
56  foreach ($e as $key => $val) {
57  if ($val == "") {
58  for ($i = 0; $i <= $s; $i++) {
59  $newip[] = 0;
60  }
61  } else {
62  $newip[] = $val;
63  }
64  }
65  $ip = implode(":", $newip);
66  }
67  return $ip;
68  }
69 
71  function compress_ipv6($ip = "") {
72  if ($ip == '') {
73  return false;
74  }
75  if (!strstr($ip, "::")) {
76  $e = explode(":", $ip);
77  $zeros = array(0);
78  $result = array_intersect($e, $zeros);
79  if (sizeof($result) >= 6) {
80  if ($e[0] == 0) {
81  $newip[] = "";
82  }
83  foreach ($e as $key => $val) {
84  if ($val !== "0") {
85  $newip[] = $val;
86  }
87  }
88  $ip = implode("::", $newip);
89  }
90  }
91  return $ip;
92  }
93 }
$i
Definition: images.php:25
$result
Definition: api.php:36
is_ipv4($ip="")
Является ли строка IPv4 адресом ?
Definition: ipv6.php:36
$s
Definition: price_an.php:409
is_ipv6($ip="")
Является ли строка IPv6 адресом ?
Definition: ipv6.php:24
compress_ipv6($ip="")
Преобразует заданный IPv6 адрес в краткую форму
Definition: ipv6.php:71
$ip
Definition: 1c_sync.php:38
uncompress_ipv6($ip="")
Преобразует заданный IPv6 адрес в полную форму
Definition: ipv6.php:49
Класс для работы с IP адресами IPv6.
Definition: ipv6.php:21
get_ip()
Возвращает IP адрес клиента
Definition: ipv6.php:44