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