3v4l.org

run code in 300+ PHP versions simultaneously
<?php header('Content-type: text/html; charset=utf-8'); // эта функция отправляет команду в сокет, и возвращает ответ от сервера function sWrite( $socket, $data, $echo = true ){ // отображаем отправляемую команду, если это требуется //if( $echo ) echo $data; // отправляем команду в сокет fputs( $socket, $data ); // получаем первый байт ответа от сервера $answer = fread( $socket, 1 ); // узнаем информацию о состоянии потока $remains = socket_get_status( $socket ); // и получаем оставшиеся байты ответа от сервера if( $remains --> 0 ) $answer .= fread( $socket, $remains['unread_bytes'] ); // функция возвращает ответ от сервера на переданную команду return $answer; } // адрес электропочты, который надо проверить $email = "admin@fcdk.kiev.ua"; // получаем данные об MX-записи домена, указанного в email $mx = dns_get_record( end( explode( "@", $email ) ), DNS_MX ); $mx = $mx[0]['target']; // открываем сокет и создаем поток $socket = fsockopen( $mx, 25, $errno, $errstr, 10 ); if( !$socket ){ //echo "$errstr ($errno)\n"; }else{ // отправляем пустую строку, чтобы получить приветствие сервера /*echo*/ sWrite( $socket, "" ); // представляемся сами /*echo*/ sWrite( $socket, "EHLO example.com\r\n" ); /*echo*/ sWrite( $socket, "MAIL FROM: dummy@example.com\r\n" ); // запрашиваем разрешение на отправку письма адресату $response = sWrite( $socket, "RCPT TO: $email\r\n" ); //echo $response; // закрываем соединение /*echo*/ sWrite( $socket, "QUIT\r\n" ); fclose( $socket ); // ниже идет простейшая обработка полученного ответа //echo "\nCheck report:\n"; if( substr_count( $response, "550" ) > 0 ) echo "Ящикa ".$email." нет.<br>"; else if( substr_count( $response, "250" ) > 0 ) if( substr_count( $response, "OK" ) > 0 ) echo "Ящик ".$email." есть.<br>"; else echo "Ящик ".$email." есть, но он какой-то странный (like a relay host).<br>"; else echo "Ящик ".$email." не был распознан <br>"; } //variant 2 if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'http://stealthdebuger.com/post/'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, "email=".$email); $out = curl_exec($curl); //echo $out; curl_close($curl); } $out = iconv("Windows-1251", "UTF-8", $out); $out_arr = explode('<h5>Проверка существования email</h5><hr>', $out); $res2 = $out_arr[1]; $out_arr = explode('</h5><hr>', $res2); $res2 = $out_arr[0]; $answer = trim(strip_tags($res2)); echo $answer;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 30
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 90
Branch analysis from position: 90
2 jumps found. (Code = 43) Position 1 = 94, Position 2 = 126
Branch analysis from position: 94
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 126
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 67
Branch analysis from position: 63
1 jumps found. (Code = 42) Position 1 = 90
Branch analysis from position: 90
Branch analysis from position: 67
2 jumps found. (Code = 43) Position 1 = 73, Position 2 = 87
Branch analysis from position: 73
2 jumps found. (Code = 43) Position 1 = 79, Position 2 = 83
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 86
Branch analysis from position: 86
1 jumps found. (Code = 42) Position 1 = 90
Branch analysis from position: 90
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 90
Branch analysis from position: 90
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 94, Position 2 = 126
Branch analysis from position: 94
Branch analysis from position: 126
filename:       /in/7H3ck
function name:  (null)
number of ops:  155
compiled vars:  !0 = $email, !1 = $mx, !2 = $socket, !3 = $errno, !4 = $errstr, !5 = $response, !6 = $curl, !7 = $out, !8 = $out_arr, !9 = $res2, !10 = $answer
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'header'
          1        SEND_VAL                                                 'Content-type%3A+text%2Fhtml%3B+charset%3Dutf-8'
          2        DO_ICALL                                                 
   22     3        ASSIGN                                                   !0, 'admin%40fcdk.kiev.ua'
   24     4        INIT_FCALL                                               'dns_get_record'
          5        INIT_FCALL                                               'end'
          6        INIT_FCALL                                               'explode'
          7        SEND_VAL                                                 '%40'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $13     
         10        SEND_VAR_NO_REF                               0          $13
         11        DO_ICALL                                         $14     
         12        SEND_VAR                                                 $14
         13        SEND_VAL                                                 16384
         14        DO_ICALL                                         $15     
         15        ASSIGN                                                   !1, $15
   25    16        FETCH_DIM_R                                      ~17     !1, 0
         17        FETCH_DIM_R                                      ~18     ~17, 'target'
         18        ASSIGN                                                   !1, ~18
   27    19        INIT_FCALL                                               'fsockopen'
         20        SEND_VAR                                                 !1
         21        SEND_VAL                                                 25
         22        SEND_REF                                                 !3
         23        SEND_REF                                                 !4
         24        SEND_VAL                                                 10
         25        DO_ICALL                                         $20     
         26        ASSIGN                                                   !2, $20
   28    27        BOOL_NOT                                         ~22     !2
         28      > JMPZ                                                     ~22, ->30
         29    > > JMP                                                      ->90
   32    30    >   INIT_FCALL                                               'swrite'
         31        SEND_VAR                                                 !2
         32        SEND_VAL                                                 ''
         33        DO_FCALL                                      0          
   34    34        INIT_FCALL                                               'swrite'
         35        SEND_VAR                                                 !2
         36        SEND_VAL                                                 'EHLO+example.com%0D%0A'
         37        DO_FCALL                                      0          
   35    38        INIT_FCALL                                               'swrite'
         39        SEND_VAR                                                 !2
         40        SEND_VAL                                                 'MAIL+FROM%3A+dummy%40example.com%0D%0A'
         41        DO_FCALL                                      0          
   37    42        INIT_FCALL                                               'swrite'
         43        SEND_VAR                                                 !2
         44        ROPE_INIT                                     3  ~27     'RCPT+TO%3A+'
         45        ROPE_ADD                                      1  ~27     ~27, !0
         46        ROPE_END                                      2  ~26     ~27, '%0D%0A'
         47        SEND_VAL                                                 ~26
         48        DO_FCALL                                      0  $29     
         49        ASSIGN                                                   !5, $29
   40    50        INIT_FCALL                                               'swrite'
         51        SEND_VAR                                                 !2
         52        SEND_VAL                                                 'QUIT%0D%0A'
         53        DO_FCALL                                      0          
   41    54        INIT_FCALL                                               'fclose'
         55        SEND_VAR                                                 !2
         56        DO_ICALL                                                 
   44    57        INIT_FCALL                                               'substr_count'
         58        SEND_VAR                                                 !5
         59        SEND_VAL                                                 '550'
         60        DO_ICALL                                         $33     
         61        IS_SMALLER                                               0, $33
         62      > JMPZ                                                     ~34, ->67
         63    >   CONCAT                                           ~35     '%D0%AF%D1%89%D0%B8%D0%BAa+', !0
         64        CONCAT                                           ~36     ~35, '+%D0%BD%D0%B5%D1%82.%3Cbr%3E'
         65        ECHO                                                     ~36
         66      > JMP                                                      ->90
   45    67    >   INIT_FCALL                                               'substr_count'
         68        SEND_VAR                                                 !5
         69        SEND_VAL                                                 '250'
         70        DO_ICALL                                         $37     
         71        IS_SMALLER                                               0, $37
         72      > JMPZ                                                     ~38, ->87
         73    >   INIT_FCALL                                               'substr_count'
         74        SEND_VAR                                                 !5
         75        SEND_VAL                                                 'OK'
         76        DO_ICALL                                         $39     
         77        IS_SMALLER                                               0, $39
         78      > JMPZ                                                     ~40, ->83
         79    >   CONCAT                                           ~41     '%D0%AF%D1%89%D0%B8%D0%BA+', !0
         80        CONCAT                                           ~42     ~41, '+%D0%B5%D1%81%D1%82%D1%8C.%3Cbr%3E'
         81        ECHO                                                     ~42
         82      > JMP                                                      ->86
   46    83    >   CONCAT                                           ~43     '%D0%AF%D1%89%D0%B8%D0%BA+', !0
         84        CONCAT                                           ~44     ~43, '+%D0%B5%D1%81%D1%82%D1%8C%2C+%D0%BD%D0%BE+%D0%BE%D0%BD+%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D1%82%D0%BE+%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9+%28like+a+relay+host%29.%3Cbr%3E'
         85        ECHO                                                     ~44
         86    > > JMP                                                      ->90
   47    87    >   CONCAT                                           ~45     '%D0%AF%D1%89%D0%B8%D0%BA+', !0
         88        CONCAT                                           ~46     ~45, '+%D0%BD%D0%B5+%D0%B1%D1%8B%D0%BB+%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%BD+%3Cbr%3E'
         89        ECHO                                                     ~46
   52    90    >   INIT_FCALL_BY_NAME                                       'curl_init'
         91        DO_FCALL                                      0  $47     
         92        ASSIGN                                           ~48     !6, $47
         93      > JMPZ                                                     ~48, ->126
   53    94    >   INIT_FCALL_BY_NAME                                       'curl_setopt'
         95        SEND_VAR_EX                                              !6
         96        FETCH_CONSTANT                                   ~49     'CURLOPT_URL'
         97        SEND_VAL_EX                                              ~49
         98        SEND_VAL_EX                                              'http%3A%2F%2Fstealthdebuger.com%2Fpost%2F'
         99        DO_FCALL                                      0          
   54   100        INIT_FCALL_BY_NAME                                       'curl_setopt'
        101        SEND_VAR_EX                                              !6
        102        FETCH_CONSTANT                                   ~51     'CURLOPT_RETURNTRANSFER'
        103        SEND_VAL_EX                                              ~51
        104        SEND_VAL_EX                                              <true>
        105        DO_FCALL                                      0          
   55   106        INIT_FCALL_BY_NAME                                       'curl_setopt'
        107        SEND_VAR_EX                                              !6
        108        FETCH_CONSTANT                                   ~53     'CURLOPT_POST'
        109        SEND_VAL_EX                                              ~53
        110        SEND_VAL_EX                                              <true>
        111        DO_FCALL                                      0          
   56   112        INIT_FCALL_BY_NAME                                       'curl_setopt'
        113        SEND_VAR_EX                                              !6
        114        FETCH_CONSTANT                                   ~55     'CURLOPT_POSTFIELDS'
        115        SEND_VAL_EX                                              ~55
        116        CONCAT                                           ~56     'email%3D', !0
        117        SEND_VAL_EX                                              ~56
        118        DO_FCALL                                      0          
   57   119        INIT_FCALL_BY_NAME                                       'curl_exec'
        120        SEND_VAR_EX                                              !6
        121        DO_FCALL                                      0  $58     
        122        ASSIGN                                                   !7, $58
   59   123        INIT_FCALL_BY_NAME                                       'curl_close'
        124        SEND_VAR_EX                                              !6
        125        DO_FCALL                                      0          
   61   126    >   INIT_FCALL_BY_NAME                                       'iconv'
        127        SEND_VAL_EX                                              'Windows-1251'
        128        SEND_VAL_EX                                              'UTF-8'
        129        SEND_VAR_EX                                              !7
        130        DO_FCALL                                      0  $61     
        131        ASSIGN                                                   !7, $61
   62   132        INIT_FCALL                                               'explode'
        133        SEND_VAL                                                 '%3Ch5%3E%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0+%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F+email%3C%2Fh5%3E%3Chr%3E'
        134        SEND_VAR                                                 !7
        135        DO_ICALL                                         $63     
        136        ASSIGN                                                   !8, $63
   63   137        FETCH_DIM_R                                      ~65     !8, 1
        138        ASSIGN                                                   !9, ~65
   64   139        INIT_FCALL                                               'explode'
        140        SEND_VAL                                                 '%3C%2Fh5%3E%3Chr%3E'
        141        SEND_VAR                                                 !9
        142        DO_ICALL                                         $67     
        143        ASSIGN                                                   !8, $67
   65   144        FETCH_DIM_R                                      ~69     !8, 0
        145        ASSIGN                                                   !9, ~69
   66   146        INIT_FCALL                                               'trim'
        147        INIT_FCALL                                               'strip_tags'
        148        SEND_VAR                                                 !9
        149        DO_ICALL                                         $71     
        150        SEND_VAR                                                 $71
        151        DO_ICALL                                         $72     
        152        ASSIGN                                                   !10, $72
   67   153        ECHO                                                     !10
        154      > RETURN                                                   1

Function swrite:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 25
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
filename:       /in/7H3ck
function name:  sWrite
number of ops:  27
compiled vars:  !0 = $socket, !1 = $data, !2 = $echo, !3 = $answer, !4 = $remains
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      <true>
   10     3        INIT_FCALL                                               'fputs'
          4        SEND_VAR                                                 !0
          5        SEND_VAR                                                 !1
          6        DO_ICALL                                                 
   12     7        INIT_FCALL                                               'fread'
          8        SEND_VAR                                                 !0
          9        SEND_VAL                                                 1
         10        DO_ICALL                                         $6      
         11        ASSIGN                                                   !3, $6
   14    12        INIT_FCALL                                               'socket_get_status'
         13        SEND_VAR                                                 !0
         14        DO_ICALL                                         $8      
         15        ASSIGN                                                   !4, $8
   16    16        POST_DEC                                         ~10     !4
         17        IS_SMALLER                                               0, ~10
         18      > JMPZ                                                     ~11, ->25
         19    >   INIT_FCALL                                               'fread'
         20        SEND_VAR                                                 !0
         21        FETCH_DIM_R                                      ~12     !4, 'unread_bytes'
         22        SEND_VAL                                                 ~12
         23        DO_ICALL                                         $13     
         24        ASSIGN_OP                                     8          !3, $13
   18    25    > > RETURN                                                   !3
   19    26*     > RETURN                                                   null

End of function swrite

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
168 ms | 1415 KiB | 45 Q