<?php

// var_dump($_SERVER);
// exit;

$ip_client1 = array_values(array_filter(explode(',', get_client_ip())));
       
$ip = $ip_client1[0];
// $ip = '79.62.252.37';
$port = $_SERVER['REMOTE_PORT'];

$url = "https://tmphub-coll.engbms.it/tmph/api/ip2msisdn/v1/$ip?port=$port";

// $url = 'https://tmphub-coll.engbms.it/tmph/api/customerprofile/v1/3381736334';
// $url = 'https://tmphub-coll.engbms.it/tmph/api/customerprofile/v1/3483807867';

// $url = 'https://tmphub-coll.engbms.it/tmph/api/moo/v1/3483807867';
// $url = 'https://tmphub-coll.engbms.it/tmph/api/moo/v1/3381736334';

// $url = 'https://tmphub-coll.engbms.it/tmph/api/otp/v1';
// $url = 'https://tmphub-coll.engbms.it/tmph/api/otp/v1/+393381736334?password=1617';


$auth = base64_encode('tim_coccole_cinema_armosia:ZE!e7uwr6++2adrep#ukaswu');
$uuid = gen_uuid();

// echo $uuid; exit;

$data = array('address' => '+393381736334');
// $data = array('address' => '+393483807867');

$options = array(
	'http' => array(
		'header' => "Content-type: application/json\r\n" . "Authorization: Basic $auth\r\n" . "X-TX-Id: $uuid \r\n",
		'method' => 'GET',
		'protocol_version'=>'1.1',
		// 'content' => http_build_query($data),
		// 'method' => 'POST',
		// 'content' => json_encode($data)
	),
	 "ssl"=>array(
        // "verify_peer" => false,
        // "verify_peer_name" => false,
        // "verify_peer_name" => true,
        // "verify_peer" => true,
        // "allow_self_signed" => true,
        'cafile' => dirname(__FILE__).'/cert.pem'
        // 'local_cert' => dirname(__FILE__).'/cert.pem'
    ),
);
$context = stream_context_create($options);
$result = @file_get_contents($url, false, $context);

// exit;

var_dump($url);
var_dump("X-TX-Id: $uuid");
var_dump(parseHeaders($http_response_header));
var_dump($result);



function parseHeaders( $headers )
{
    $head = array();
    foreach( $headers as $k=>$v )
    {
        $t = explode( ':', $v, 2 );
        if( isset( $t[1] ) )
            $head[ trim($t[0]) ] = trim( $t[1] );
        else
        {
            $head[] = $v;
            if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                $head['reponse_code'] = intval($out[1]);
        }
    }
    return $head;
}

function get_client_ip() {
        $ipaddress = '';
        // if (isset($_SERVER['HTTP_CLIENT_IP']))
        //     $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        // else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        //     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        // else if(isset($_SERVER['HTTP_X_FORWARDED']))
        //     $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        // else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        //     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        // else if(isset($_SERVER['HTTP_FORWARDED']))
        //     $ipaddress = $_SERVER['HTTP_FORWARDED'];
        // else if(isset($_SERVER['REMOTE_ADDR']))
        //     $ipaddress = $_SERVER['REMOTE_ADDR'];
        // else
        //     $ipaddress = 'UNKNOWN';

        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if (getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if (getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if (getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if (getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if (getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }

function gen_uuid() {
    return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
        // 32 bits for "time_low"
        mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),

        // 16 bits for "time_mid"
        mt_rand( 0, 0xffff ),

        // 16 bits for "time_hi_and_version",
        // four most significant bits holds version number 4
        mt_rand( 0, 0x0fff ) | 0x4000,

        // 16 bits, 8 bits for "clk_seq_hi_res",
        // 8 bits for "clk_seq_low",
        // two most significant bits holds zero and one for variant DCE1.1
        mt_rand( 0, 0x3fff ) | 0x8000,

        // 48 bits for "node"
        mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
    );
}

?>