equal
deleted
inserted
replaced
|
1 <?php |
|
2 |
|
3 /** |
|
4 * @author Bettina Schwarzer, Fritz-Haber-Institut |
|
5 * @copyright 01/2014 |
|
6 */ |
|
7 |
|
8 function isintern($ip) |
|
9 { |
|
10 if (!preg_match("/^141\.14\./", $ip) && |
|
11 !preg_match("/^172\.(1[6-9]|2[0-9]|31)\./", $ip) && |
|
12 !preg_match("/^10\.0\./", $ip)) { |
|
13 echo "extern: ".$ip. "<br />"; |
|
14 return false; |
|
15 } |
|
16 else |
|
17 { |
|
18 echo "intern: ".$ip. "<br />"; |
|
19 return false; |
|
20 } |
|
21 } |
|
22 |
|
23 isintern($_SERVER["REMOTE_ADDR"]); |
|
24 echo ", ".ip2long($_SERVER["REMOTE_ADDR"]); |
|
25 echo "<br /><br />"; |
|
26 foreach(array('171.15.255.555', |
|
27 '172.16.0.0', |
|
28 '172.24.3.3', |
|
29 '172.16.3.3', |
|
30 '172.18.3.3', |
|
31 '172.24.3.3', |
|
32 '172.31.255.255', |
|
33 '172.32.0.0', |
|
34 '10.0.1.128', |
|
35 '123.123.123.123', |
|
36 '8.8.8.8', |
|
37 '141.14.127.255', |
|
38 '141.14.128.0', |
|
39 '141.14.143.255', |
|
40 '141.14.144.0', |
|
41 '141.14.141.141') as $ip) { |
|
42 isintern($ip); |
|
43 } |
|
44 echo "<br /><br />"; |
|
45 |
|
46 function islocal($ip) { |
|
47 foreach(array('172.16.0.0/12', '141.14.128.0/20','10.0.0.0/8') as $net) { |
|
48 list($subnet, $mask) = explode('/', $net); |
|
49 if ((ip2long($ip) & ~((1 << (32 - $mask)) - 1) ) == ip2long($subnet)) return true; |
|
50 } |
|
51 return false; |
|
52 } |
|
53 |
|
54 |
|
55 |
|
56 foreach(array('171.15.255.555', |
|
57 '172.16.0.0', |
|
58 '172.24.3.3', |
|
59 '172.16.3.3', |
|
60 '172.18.3.3', |
|
61 '172.24.3.3', |
|
62 '172.31.255.255', |
|
63 '172.32.0.0', |
|
64 '10.0.1.128', |
|
65 '123.123.123.123', |
|
66 '8.8.8.8', |
|
67 '141.14.127.255', |
|
68 '141.14.128.0', |
|
69 '141.14.143.255', |
|
70 '141.14.144.0', |
|
71 '141.14.141.141') as $ip) { |
|
72 |
|
73 if (islocal($ip)) echo "$ip local<br>\n"; |
|
74 else echo "$ip extern<br>\n"; |
|
75 } |
|
76 |
|
77 ?> |