<?php 
highlight_file
(__FILE__);


function 
check_inner_ip($url

    
$match_result=preg_match('/^(http|https)?:\/\/.*(\/)?.*$/',$url); 
    if (!
$match_result
    { 
        die(
'url fomat error'); 
    } 
    try 
    { 
        
$url_parse=parse_url($url); 
    } 
    catch(
Exception $e
    { 
        die(
'url fomat error'); 
        return 
false
    } 
    
$hostname=$url_parse['host']; 
    
$ip=gethostbyname($hostname); 
    
$int_ip=ip2long($ip); 

    return 
ip2long('127.0.0.0')>>24 == $int_ip>>24 || ip2long('10.0.0.0')>>24 == $int_ip>>24 || ip2long('172.16.0.0')>>20 == $int_ip>>20 || ip2long('192.168.0.0')>>16 == $int_ip>>16


 
function 
safe_request_url($url

     
    if (
check_inner_ip($url)) 
    { 
        echo 
$url.' is inner ip'
    } 
    else 
    {
        
$ch curl_init(); 
        
curl_setopt($chCURLOPT_URL$url); 
        
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
        
curl_setopt($chCURLOPT_HEADER0); 
        
$output curl_exec($ch); 
        
$result_info curl_getinfo($ch); 
        if (
$result_info['redirect_url']) 
        { 
            
safe_request_url($result_info['redirect_url']); 
        } 
        
curl_close($ch); 
        echo (
$output); 
    } 
     

 
$url $_GET['url']; 
if(!empty(
$url)){ 
    
safe_request_url($url); 

 
?>