3v4l.org

run code in 300+ PHP versions simultaneously
<?php function ip_in_range($ip, $range) { $array_range = array(); if(strpos($range, ",") !== false) { // Varias faixas de ip $return = true; $array_range = explode(",", $range); foreach ($array_range as $rangeIP) { echo $rangeIP; if($rangeIP){ echo "1"."\n"; if($ip != $range){ echo "2"."\n"; $return = false; break; } else if (strpos($rangeIP, '/') !== false) { echo "3"."\n"; // $rangeIP is in IP/NETMASK format list($rangeIP, $netmask) = explode('/', $rangeIP, 2); if (strpos($netmask, '.') !== false) { echo "4"."\n"; // $netmask is a 255.255.0.0 format $netmask = str_replace('*', '0', $netmask); $netmask_dec = ip2long($netmask); $return = ( (ip2long($ip) & $netmask_dec) == (ip2long($rangeIP) & $netmask_dec) ); if(!$return) { echo "5"."\n"; break; } } else { echo "6"."\n"; // $netmask is a CIDR size block // fix the rangeIP argument $x = explode('.', $rangeIP); while(count($x)<4) $x[] = '0'; list($a,$b,$c,$d) = $x; $rangeIP = sprintf("%u.%u.%u.%u", empty($a)?'0':$a, empty($b)?'0':$b,empty($c)?'0':$c,empty($d)?'0':$d); $range_dec = ip2long($rangeIP); $ip_dec = ip2long($ip); # Strategy 1 - Create the netmask with 'netmask' 1s and then fill it to 32 with 0s #$netmask_dec = bindec(str_pad('', $netmask, '1') . str_pad('', 32-$netmask, '0')); # Strategy 2 - Use math to create it $wildcard_dec = pow(2, (32-$netmask)) - 1; $netmask_dec = ~ $wildcard_dec; $return = (($ip_dec & $netmask_dec) == ($range_dec & $netmask_dec)); if(!$return) { echo "7"."\n"; break; } } } else { echo "8"."\n"; // rangeIP might be 255.255.*.* or 1.2.3.0-1.2.3.255 if (strpos($rangeIP, '*') !== false) { // a.b.*.* format echo "9"."\n"; // Just convert to A-B format by setting * to 0 for A and 255 for B $lower = str_replace('*', '0', $rangeIP); $upper = str_replace('*', '255', $rangeIP); $rangeIP = "$lower-$upper"; } if (strpos($rangeIP, '-') !== false) { // A-B format echo "10"."\n"; list($lower, $upper) = explode('-', $rangeIP, 2); $lower_dec = (float)sprintf("%u",ip2long($lower)); $upper_dec = (float)sprintf("%u",ip2long($upper)); $ip_dec = (float)sprintf("%u",ip2long($ip)); $return = ( ($ip_dec>=$lower_dec) && ($ip_dec<=$upper_dec) ); if(!$return) { echo "11"."\n"; break; } } echo "12"."\n"; $return = false; break; } } } echo "13"."\n"; return $return; } else { // Uma faixas de ip if(!$range){ return true; } else if($ip == $range){ return true; } else if (strpos($range, '/') !== false) { // $range is in IP/NETMASK format list($range, $netmask) = explode('/', $range, 2); if (strpos($netmask, '.') !== false) { // $netmask is a 255.255.0.0 format $netmask = str_replace('*', '0', $netmask); $netmask_dec = ip2long($netmask); return ( (ip2long($ip) & $netmask_dec) == (ip2long($range) & $netmask_dec) ); } else { // $netmask is a CIDR size block // fix the range argument $x = explode('.', $range); while(count($x)<4) $x[] = '0'; list($a,$b,$c,$d) = $x; $range = sprintf("%u.%u.%u.%u", empty($a)?'0':$a, empty($b)?'0':$b,empty($c)?'0':$c,empty($d)?'0':$d); $range_dec = ip2long($range); $ip_dec = ip2long($ip); # Strategy 1 - Create the netmask with 'netmask' 1s and then fill it to 32 with 0s #$netmask_dec = bindec(str_pad('', $netmask, '1') . str_pad('', 32-$netmask, '0')); # Strategy 2 - Use math to create it $wildcard_dec = pow(2, (32-$netmask)) - 1; $netmask_dec = ~ $wildcard_dec; return (($ip_dec & $netmask_dec) == ($range_dec & $netmask_dec)); } } else { // range might be 255.255.*.* or 1.2.3.0-1.2.3.255 if (strpos($range, '*') !==false) { // a.b.*.* format // Just convert to A-B format by setting * to 0 for A and 255 for B $lower = str_replace('*', '0', $range); $upper = str_replace('*', '255', $range); $range = "$lower-$upper"; } if (strpos($range, '-')!==false) { // A-B format list($lower, $upper) = explode('-', $range, 2); $lower_dec = (float)sprintf("%u",ip2long($lower)); $upper_dec = (float)sprintf("%u",ip2long($upper)); $ip_dec = (float)sprintf("%u",ip2long($ip)); return ( ($ip_dec>=$lower_dec) && ($ip_dec<=$upper_dec) ); } return false; } } } echo "\n". (int) ip_in_range("127.0.0.1", "127.0.0.0,127.0.0.1");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/GAKEo
function name:  (null)
number of ops:  8
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  147     0  E >   INIT_FCALL                                               'ip_in_range'
          1        SEND_VAL                                                 '127.0.0.1'
          2        SEND_VAL                                                 '127.0.0.0%2C127.0.0.1'
          3        DO_FCALL                                      0  $0      
          4        CAST                                          4  ~1      $0
          5        CONCAT                                           ~2      '%0A', ~1
          6        ECHO                                                     ~2
          7      > RETURN                                                   1

Function ip_in_range:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 236
Branch analysis from position: 9
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 232
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 232
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 231
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 26
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 151
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 75
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 74
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 150
Branch analysis from position: 150
1 jumps found. (Code = 42) Position 1 = 231
Branch analysis from position: 231
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
2 jumps found. (Code = 44) Position 1 = 87, Position 2 = 82
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 101, Position 2 = 103
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 104
Branch analysis from position: 104
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 109
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 110
Branch analysis from position: 110
2 jumps found. (Code = 43) Position 1 = 113, Position 2 = 115
Branch analysis from position: 113
1 jumps found. (Code = 42) Position 1 = 116
Branch analysis from position: 116
2 jumps found. (Code = 43) Position 1 = 119, Position 2 = 121
Branch analysis from position: 119
1 jumps found. (Code = 42) Position 1 = 122
Branch analysis from position: 122
2 jumps found. (Code = 43) Position 1 = 148, Position 2 = 150
Branch analysis from position: 148
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
Branch analysis from position: 150
Branch analysis from position: 121
2 jumps found. (Code = 43) Position 1 = 148, Position 2 = 150
Branch analysis from position: 148
Branch analysis from position: 150
Branch analysis from position: 115
2 jumps found. (Code = 43) Position 1 = 119, Position 2 = 121
Branch analysis from position: 119
Branch analysis from position: 121
Branch analysis from position: 109
2 jumps found. (Code = 43) Position 1 = 113, Position 2 = 115
Branch analysis from position: 113
Branch analysis from position: 115
Branch analysis from position: 103
2 jumps found. (Code = 43) Position 1 = 107, Position 2 = 109
Branch analysis from position: 107
Branch analysis from position: 109
Branch analysis from position: 82
2 jumps found. (Code = 44) Position 1 = 87, Position 2 = 82
Branch analysis from position: 87
Branch analysis from position: 82
Branch analysis from position: 151
2 jumps found. (Code = 43) Position 1 = 158, Position 2 = 175
Branch analysis from position: 158
2 jumps found. (Code = 43) Position 1 = 181, Position 2 = 228
Branch analysis from position: 181
2 jumps found. (Code = 46) Position 1 = 221, Position 2 = 223
Branch analysis from position: 221
2 jumps found. (Code = 43) Position 1 = 226, Position 2 = 228
Branch analysis from position: 226
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
Branch analysis from position: 228
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
Branch analysis from position: 223
Branch analysis from position: 228
Branch analysis from position: 175
Branch analysis from position: 231
Branch analysis from position: 232
Branch analysis from position: 232
Branch analysis from position: 236
2 jumps found. (Code = 43) Position 1 = 238, Position 2 = 240
Branch analysis from position: 238
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 240
2 jumps found. (Code = 43) Position 1 = 242, Position 2 = 244
Branch analysis from position: 242
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 244
2 jumps found. (Code = 43) Position 1 = 250, Position 2 = 358
Branch analysis from position: 250
2 jumps found. (Code = 43) Position 1 = 266, Position 2 = 287
Branch analysis from position: 266
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 287
1 jumps found. (Code = 42) Position 1 = 295
Branch analysis from position: 295
2 jumps found. (Code = 44) Position 1 = 298, Position 2 = 293
Branch analysis from position: 298
2 jumps found. (Code = 43) Position 1 = 312, Position 2 = 314
Branch analysis from position: 312
1 jumps found. (Code = 42) Position 1 = 315
Branch analysis from position: 315
2 jumps found. (Code = 43) Position 1 = 318, Position 2 = 320
Branch analysis from position: 318
1 jumps found. (Code = 42) Position 1 = 321
Branch analysis from position: 321
2 jumps found. (Code = 43) Position 1 = 324, Position 2 = 326
Branch analysis from position: 324
1 jumps found. (Code = 42) Position 1 = 327
Branch analysis from position: 327
2 jumps found. (Code = 43) Position 1 = 330, Position 2 = 332
Branch analysis from position: 330
1 jumps found. (Code = 42) Position 1 = 333
Branch analysis from position: 333
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 332
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 326
2 jumps found. (Code = 43) Position 1 = 330, Position 2 = 332
Branch analysis from position: 330
Branch analysis from position: 332
Branch analysis from position: 320
2 jumps found. (Code = 43) Position 1 = 324, Position 2 = 326
Branch analysis from position: 324
Branch analysis from position: 326
Branch analysis from position: 314
2 jumps found. (Code = 43) Position 1 = 318, Position 2 = 320
Branch analysis from position: 318
Branch analysis from position: 320
Branch analysis from position: 293
2 jumps found. (Code = 44) Position 1 = 298, Position 2 = 293
Branch analysis from position: 298
Branch analysis from position: 293
Branch analysis from position: 358
2 jumps found. (Code = 43) Position 1 = 364, Position 2 = 380
Branch analysis from position: 364
2 jumps found. (Code = 43) Position 1 = 386, Position 2 = 428
Branch analysis from position: 386
2 jumps found. (Code = 46) Position 1 = 425, Position 2 = 427
Branch analysis from position: 425
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 427
Branch analysis from position: 428
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 380
filename:       /in/GAKEo
function name:  ip_in_range
number of ops:  430
compiled vars:  !0 = $ip, !1 = $range, !2 = $array_range, !3 = $return, !4 = $rangeIP, !5 = $netmask, !6 = $netmask_dec, !7 = $x, !8 = $a, !9 = $b, !10 = $c, !11 = $d, !12 = $range_dec, !13 = $ip_dec, !14 = $wildcard_dec, !15 = $lower, !16 = $upper, !17 = $lower_dec, !18 = $upper_dec
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    5     2        ASSIGN                                                   !2, <array>
    7     3        INIT_FCALL                                               'strpos'
          4        SEND_VAR                                                 !1
          5        SEND_VAL                                                 '%2C'
          6        DO_ICALL                                         $20     
          7        TYPE_CHECK                                  1018          $20
          8      > JMPZ                                                     ~21, ->236
    8     9    >   ASSIGN                                                   !3, <true>
   10    10        INIT_FCALL                                               'explode'
         11        SEND_VAL                                                 '%2C'
         12        SEND_VAR                                                 !1
         13        DO_ICALL                                         $23     
         14        ASSIGN                                                   !2, $23
   12    15      > FE_RESET_R                                       $25     !2, ->232
         16    > > FE_FETCH_R                                               $25, !4, ->232
   13    17    >   ECHO                                                     !4
   14    18      > JMPZ                                                     !4, ->231
   15    19    >   ECHO                                                     '1%0A'
   16    20        IS_NOT_EQUAL                                             !0, !1
         21      > JMPZ                                                     ~26, ->26
   17    22    >   ECHO                                                     '2%0A'
   18    23        ASSIGN                                                   !3, <false>
   19    24      > JMP                                                      ->232
         25*       JMP                                                      ->231
   20    26    >   INIT_FCALL                                               'strpos'
         27        SEND_VAR                                                 !4
         28        SEND_VAL                                                 '%2F'
         29        DO_ICALL                                         $28     
         30        TYPE_CHECK                                  1018          $28
         31      > JMPZ                                                     ~29, ->151
   21    32    >   ECHO                                                     '3%0A'
   23    33        INIT_FCALL                                               'explode'
         34        SEND_VAL                                                 '%2F'
         35        SEND_VAR                                                 !4
         36        SEND_VAL                                                 2
         37        DO_ICALL                                         $30     
         38        FETCH_LIST_R                                     $31     $30, 0
         39        ASSIGN                                                   !4, $31
         40        FETCH_LIST_R                                     $33     $30, 1
         41        ASSIGN                                                   !5, $33
         42        FREE                                                     $30
   24    43        INIT_FCALL                                               'strpos'
         44        SEND_VAR                                                 !5
         45        SEND_VAL                                                 '.'
         46        DO_ICALL                                         $35     
         47        TYPE_CHECK                                  1018          $35
         48      > JMPZ                                                     ~36, ->75
   25    49    >   ECHO                                                     '4%0A'
   27    50        INIT_FCALL                                               'str_replace'
         51        SEND_VAL                                                 '%2A'
         52        SEND_VAL                                                 '0'
         53        SEND_VAR                                                 !5
         54        DO_ICALL                                         $37     
         55        ASSIGN                                                   !5, $37
   28    56        INIT_FCALL                                               'ip2long'
         57        SEND_VAR                                                 !5
         58        DO_ICALL                                         $39     
         59        ASSIGN                                                   !6, $39
   30    60        INIT_FCALL                                               'ip2long'
         61        SEND_VAR                                                 !0
         62        DO_ICALL                                         $41     
         63        BW_AND                                           ~42     !6, $41
         64        INIT_FCALL                                               'ip2long'
         65        SEND_VAR                                                 !4
         66        DO_ICALL                                         $43     
         67        BW_AND                                           ~44     !6, $43
         68        IS_EQUAL                                         ~45     ~42, ~44
         69        ASSIGN                                                   !3, ~45
   31    70        BOOL_NOT                                         ~47     !3
         71      > JMPZ                                                     ~47, ->74
   32    72    >   ECHO                                                     '5%0A'
   33    73      > JMP                                                      ->232
         74    > > JMP                                                      ->150
   36    75    >   ECHO                                                     '6%0A'
   39    76        INIT_FCALL                                               'explode'
         77        SEND_VAL                                                 '.'
         78        SEND_VAR                                                 !4
         79        DO_ICALL                                         $48     
         80        ASSIGN                                                   !7, $48
   40    81      > JMP                                                      ->84
         82    >   ASSIGN_DIM                                               !7
         83        OP_DATA                                                  '0'
         84    >   COUNT                                            ~51     !7
         85        IS_SMALLER                                               ~51, 4
         86      > JMPNZ                                                    ~52, ->82
   41    87    >   QM_ASSIGN                                        ~53     !7
         88        FETCH_LIST_R                                     $54     ~53, 0
         89        ASSIGN                                                   !8, $54
         90        FETCH_LIST_R                                     $56     ~53, 1
         91        ASSIGN                                                   !9, $56
         92        FETCH_LIST_R                                     $58     ~53, 2
         93        ASSIGN                                                   !10, $58
         94        FETCH_LIST_R                                     $60     ~53, 3
         95        ASSIGN                                                   !11, $60
         96        FREE                                                     ~53
   42    97        INIT_FCALL                                               'sprintf'
         98        SEND_VAL                                                 '%25u.%25u.%25u.%25u'
         99        ISSET_ISEMPTY_CV                                         !8
        100      > JMPZ                                                     ~62, ->103
        101    >   QM_ASSIGN                                        ~63     '0'
        102      > JMP                                                      ->104
        103    >   QM_ASSIGN                                        ~63     !8
        104    >   SEND_VAL                                                 ~63
        105        ISSET_ISEMPTY_CV                                         !9
        106      > JMPZ                                                     ~64, ->109
        107    >   QM_ASSIGN                                        ~65     '0'
        108      > JMP                                                      ->110
        109    >   QM_ASSIGN                                        ~65     !9
        110    >   SEND_VAL                                                 ~65
        111        ISSET_ISEMPTY_CV                                         !10
        112      > JMPZ                                                     ~66, ->115
        113    >   QM_ASSIGN                                        ~67     '0'
        114      > JMP                                                      ->116
        115    >   QM_ASSIGN                                        ~67     !10
        116    >   SEND_VAL                                                 ~67
        117        ISSET_ISEMPTY_CV                                         !11
        118      > JMPZ                                                     ~68, ->121
        119    >   QM_ASSIGN                                        ~69     '0'
        120      > JMP                                                      ->122
        121    >   QM_ASSIGN                                        ~69     !11
        122    >   SEND_VAL                                                 ~69
        123        DO_ICALL                                         $70     
        124        ASSIGN                                                   !4, $70
   43   125        INIT_FCALL                                               'ip2long'
        126        SEND_VAR                                                 !4
        127        DO_ICALL                                         $72     
        128        ASSIGN                                                   !12, $72
   44   129        INIT_FCALL                                               'ip2long'
        130        SEND_VAR                                                 !0
        131        DO_ICALL                                         $74     
        132        ASSIGN                                                   !13, $74
   50   133        INIT_FCALL                                               'pow'
        134        SEND_VAL                                                 2
        135        SUB                                              ~76     32, !5
        136        SEND_VAL                                                 ~76
        137        DO_ICALL                                         $77     
        138        SUB                                              ~78     $77, 1
        139        ASSIGN                                                   !14, ~78
   51   140        BW_NOT                                           ~80     !14
        141        ASSIGN                                                   !6, ~80
   53   142        BW_AND                                           ~82     !13, !6
        143        BW_AND                                           ~83     !12, !6
        144        IS_EQUAL                                         ~84     ~82, ~83
        145        ASSIGN                                                   !3, ~84
   54   146        BOOL_NOT                                         ~86     !3
        147      > JMPZ                                                     ~86, ->150
   55   148    >   ECHO                                                     '7%0A'
   56   149      > JMP                                                      ->232
        150    > > JMP                                                      ->231
   60   151    >   ECHO                                                     '8%0A'
   62   152        INIT_FCALL                                               'strpos'
        153        SEND_VAR                                                 !4
        154        SEND_VAL                                                 '%2A'
        155        DO_ICALL                                         $87     
        156        TYPE_CHECK                                  1018          $87
        157      > JMPZ                                                     ~88, ->175
   63   158    >   ECHO                                                     '9%0A'
   65   159        INIT_FCALL                                               'str_replace'
        160        SEND_VAL                                                 '%2A'
        161        SEND_VAL                                                 '0'
        162        SEND_VAR                                                 !4
        163        DO_ICALL                                         $89     
        164        ASSIGN                                                   !15, $89
   66   165        INIT_FCALL                                               'str_replace'
        166        SEND_VAL                                                 '%2A'
        167        SEND_VAL                                                 '255'
        168        SEND_VAR                                                 !4
        169        DO_ICALL                                         $91     
        170        ASSIGN                                                   !16, $91
   67   171        ROPE_INIT                                     3  ~94     !15
        172        ROPE_ADD                                      1  ~94     ~94, '-'
        173        ROPE_END                                      2  ~93     ~94, !16
        174        ASSIGN                                                   !4, ~93
   70   175    >   INIT_FCALL                                               'strpos'
        176        SEND_VAR                                                 !4
        177        SEND_VAL                                                 '-'
        178        DO_ICALL                                         $97     
        179        TYPE_CHECK                                  1018          $97
        180      > JMPZ                                                     ~98, ->228
   71   181    >   ECHO                                                     '10%0A'
   72   182        INIT_FCALL                                               'explode'
        183        SEND_VAL                                                 '-'
        184        SEND_VAR                                                 !4
        185        SEND_VAL                                                 2
        186        DO_ICALL                                         $99     
        187        FETCH_LIST_R                                     $100    $99, 0
        188        ASSIGN                                                   !15, $100
        189        FETCH_LIST_R                                     $102    $99, 1
        190        ASSIGN                                                   !16, $102
        191        FREE                                                     $99
   73   192        INIT_FCALL                                               'sprintf'
        193        SEND_VAL                                                 '%25u'
        194        INIT_FCALL                                               'ip2long'
        195        SEND_VAR                                                 !15
        196        DO_ICALL                                         $104    
        197        SEND_VAR                                                 $104
        198        DO_ICALL                                         $105    
        199        CAST                                          5  ~106    $105
        200        ASSIGN                                                   !17, ~106
   74   201        INIT_FCALL                                               'sprintf'
        202        SEND_VAL                                                 '%25u'
        203        INIT_FCALL                                               'ip2long'
        204        SEND_VAR                                                 !16
        205        DO_ICALL                                         $108    
        206        SEND_VAR                                                 $108
        207        DO_ICALL                                         $109    
        208        CAST                                          5  ~110    $109
        209        ASSIGN                                                   !18, ~110
   75   210        INIT_FCALL                                               'sprintf'
        211        SEND_VAL                                                 '%25u'
        212        INIT_FCALL                                               'ip2long'
        213        SEND_VAR                                                 !0
        214        DO_ICALL                                         $112    
        215        SEND_VAR                                                 $112
        216        DO_ICALL                                         $113    
        217        CAST                                          5  ~114    $113
        218        ASSIGN                                                   !13, ~114
   76   219        IS_SMALLER_OR_EQUAL                              ~116    !17, !13
        220      > JMPZ_EX                                          ~116    ~116, ->223
        221    >   IS_SMALLER_OR_EQUAL                              ~117    !13, !18
        222        BOOL                                             ~116    ~117
        223    >   ASSIGN                                                   !3, ~116
   77   224        BOOL_NOT                                         ~119    !3
        225      > JMPZ                                                     ~119, ->228
   78   226    >   ECHO                                                     '11%0A'
   79   227      > JMP                                                      ->232
   82   228    >   ECHO                                                     '12%0A'
   83   229        ASSIGN                                                   !3, <false>
   84   230      > JMP                                                      ->232
   12   231    > > JMP                                                      ->16
        232    >   FE_FREE                                                  $25
   88   233        ECHO                                                     '13%0A'
   89   234      > RETURN                                                   !3
        235*       JMP                                                      ->429
   93   236    >   BOOL_NOT                                         ~121    !1
        237      > JMPZ                                                     ~121, ->240
   94   238    > > RETURN                                                   <true>
        239*       JMP                                                      ->429
   96   240    >   IS_EQUAL                                                 !0, !1
        241      > JMPZ                                                     ~122, ->244
   97   242    > > RETURN                                                   <true>
        243*       JMP                                                      ->429
   99   244    >   INIT_FCALL                                               'strpos'
        245        SEND_VAR                                                 !1
        246        SEND_VAL                                                 '%2F'
        247        DO_ICALL                                         $123    
        248        TYPE_CHECK                                  1018          $123
        249      > JMPZ                                                     ~124, ->358
  101   250    >   INIT_FCALL                                               'explode'
        251        SEND_VAL                                                 '%2F'
        252        SEND_VAR                                                 !1
        253        SEND_VAL                                                 2
        254        DO_ICALL                                         $125    
        255        FETCH_LIST_R                                     $126    $125, 0
        256        ASSIGN                                                   !1, $126
        257        FETCH_LIST_R                                     $128    $125, 1
        258        ASSIGN                                                   !5, $128
        259        FREE                                                     $125
  102   260        INIT_FCALL                                               'strpos'
        261        SEND_VAR                                                 !5
        262        SEND_VAL                                                 '.'
        263        DO_ICALL                                         $130    
        264        TYPE_CHECK                                  1018          $130
        265      > JMPZ                                                     ~131, ->287
  104   266    >   INIT_FCALL                                               'str_replace'
        267        SEND_VAL                                                 '%2A'
        268        SEND_VAL                                                 '0'
        269        SEND_VAR                                                 !5
        270        DO_ICALL                                         $132    
        271        ASSIGN                                                   !5, $132
  105   272        INIT_FCALL                                               'ip2long'
        273        SEND_VAR                                                 !5
        274        DO_ICALL                                         $134    
        275        ASSIGN                                                   !6, $134
  106   276        INIT_FCALL                                               'ip2long'
        277        SEND_VAR                                                 !0
        278        DO_ICALL                                         $136    
        279        BW_AND                                           ~137    !6, $136
        280        INIT_FCALL                                               'ip2long'
        281        SEND_VAR                                                 !1
        282        DO_ICALL                                         $138    
        283        BW_AND                                           ~139    !6, $138
        284        IS_EQUAL                                         ~140    ~137, ~139
        285      > RETURN                                                   ~140
        286*       JMP                                                      ->357
  110   287    >   INIT_FCALL                                               'explode'
        288        SEND_VAL                                                 '.'
        289        SEND_VAR                                                 !1
        290        DO_ICALL                                         $141    
        291        ASSIGN                                                   !7, $141
  111   292      > JMP                                                      ->295
        293    >   ASSIGN_DIM                                               !7
        294        OP_DATA                                                  '0'
        

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
181.4 ms | 1431 KiB | 26 Q