MENU

CloudFlare的IP解析器

April 4, 2013 • phpcode

<?php
# CloudFlare IP 解析器
 
function is_ipv4($ip)
{
    return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '(Null)';
}
 
$me = $argv[0];
$url = @$argv[1];
 
if(!isset($url))
    die("\n[+] Usage: php {$me} <url>\n[+] Example: php {$me} http://www.imgur.com\n");
 
if(!preg_match('/^(https?):\/\/(w{3}|w3)\./i', $url))
    die("\nURL is invalid.\nURL must be formatted as: http(s)://www." . preg_replace('/^(https?):\/\//', '', $url) . "\n(for compatibility reasons)\n");
 
$headers = get_headers($url, 1);
$server = $headers['Server'];
 
$subs = array('cpanel.', 'ftp.', 'mail.', 'webmail.', 'direct.', 'direct-connect.', 'record.', 'ssl.', 'dns.', 'help.', 'blog.', 'forum.');
$count = count($subs);
 
if(preg_match('/^(https?):\/\/(w{3}|w3)\./i', $url, $matches))
{
    if($matches[2] != 'www')
    {
     $url = preg_replace('/^(https?):\/\//', '', $url);
    }
    else
    {
     $url = explode($matches[0], $url);
     $url = $url[1];
    }
}
 
if(is_array($server))
    $server = $server[0];
 
if(preg_match('/cloudflare/i', $server))
    echo "\n[+] CloudFlare detected: {$server}\n";
else
    echo "\n[+] CloudFlare wasn't detected, proceeding anyway.\n";
 
echo '[+] IP: ' . is_ipv4(gethostbyname($url)) . "\n\n";
echo "[+] Searching for more IP addresses.\n\n";
 
for($x = 0; $x < $count; $x++)
{
    $site = $subs[$x] . $url;
    $ip = is_ipv4(gethostbyname($site));
 
    echo "Trying {$site}: {$ip}\n";
}
 
echo "\n[+] Finished.\n";
 
?>



Archives QR Code
QR Code for this page
Tipping QR Code