views:

39

answers:

4

I have a ton of IP addresses that I need to visit to see if they are active. So my plan is to redirect the browser over and over again and then just use the back button to view each page. What is the best way to do this?

I will most likely have an array of IP addresses. like:

array(234.324, 2343.323432, 234.234, 234.4543)

Then I can use some sort of scripting language to loop through and redirect the browser to these. Looking forward to seeing some cool solutions.

+3  A: 

Use cURL

kovshenin
A: 

Those do not look like ip-addresses to me, but whatever. Why don't you just make your code fetch each of the pages you are interested in checking?

klausbyskov
I'm pretty sure he typed random numbers as examples, not as actual data.
ceejayoz
+2  A: 

That is not recommended.

If you have a PHP-capable server, you can ping each domain:

<?php
function pingDomain($domain){
    $starttime = microtime(true);
    $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

    if (!$file) $status = -1;  // Site is down
    else {
        fclose($file);
        $status = ($stoptime - $starttime) * 1000;
        $status = floor($status);
    }
    return $status;
}
?>
Evan Mulawski
This would be nice, but I have to get information from the page if it is active. So I have to actually view the page.
Mike
In that case, just download each page: <?php $data = file_get_contents("http://www.test.com",0); echo $data; ?>
Evan Mulawski
Yep that's what I am thinking, like Noctine might be doing below. Create a file that says this ip is online or offline, if online include a link.
Mike
+2  A: 

Further to Kovshenin's reply, here is a tool I made recently that will be able to help you out.

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"&gt;&lt;/script&gt;

<script type="text/javascript">
$(document).ready(function(){

    $('#error_toggle').click(function() {

        $('#error_details').slideToggle('slow', function() {

        });

    });

    $('#success_toggle').click(function() {

        $('#success_details').slideToggle('slow', function() {

        });

    });

});

</script>

<style>
div
{
font-family: arial;
font-size: 12px;
}

#message
{
font-weight: bold;
font-size: 16px;
}

#error_toggle
{
width: 250px;
font-weight: bold;
text-align: center;
line-height: 25px;
background: #23ae66;
color: #ffffff;
height: 25px;
cursor: pointer;
}

#error_details 
{
display: none;
background: #2b2b2b;
padding: 5px;
color: #ffffff;
width: 240px;
}

#success_toggle
{
width: 350px;
font-weight: bold;
text-align: center;
line-height: 25px;
background: #23ae66;
color: #ffffff;
height: 25px;
cursor: pointer;
}

#success_details 
{
width: 340px;
display: none;
padding: 5px;
color: #ffffff;
background: #2b2b2b;
}
</style>
</head>
<body>
<?php

//Setting up the correct URL and stripping it of un-needed content
$url = $_GET['url'];

    $unwanted_args = array('http://', 'www.');

    $clean_url = str_replace($unwanted_args, '', $url);
    $clean_url = trim($clean_url);

//Initalizing CURL
$set_curl = curl_init($url);

    // Setting the array for which headers to return.
    $headers = array('Expect:');

    //Setting required CURL options
    curl_setopt($set_curl, CURLOPT_FAILONERROR, true);
    curl_setopt($set_curl, CURLINFO_HEADER_OUT, true);
    curl_setopt($set_curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($set_curl, CURLOPT_TIMEOUT, 1);
    curl_setopt($set_curl, CURLOPT_HEADER, false);
    curl_setopt($set_curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($set_curl, CURLOPT_USERAGENT,  "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");

        //Execute request
        curl_exec($set_curl);

    //Check to see if the website is down
    if(curl_error($set_curl)) {

        echo '<div id="message">' . $clean_url . ' is down</div>';

        echo '<div id="error_toggle">Details</div>';
        echo '<div id="error_details">';

        echo  curl_error($set_curl) . '<br />';
        echo 'Error number: ' . curl_errno($set_curl) . '<br />';

        echo '</div>';

    }
    //Else display success message
    else {

        $info = curl_getinfo($set_curl);

        echo '<div id="message">Success! <a href="' . $info['url'] . '">' . $clean_url . '</a> is currently online</div>';

        echo '<div id="success_toggle">Details</div>';
        echo '<div id="success_details">';

        echo 'Url: ' . $info['url'] . '<br />';
        echo 'Total Time: ' . $info['total_time'] . ' Seconds<br />';
        echo 'Average download speed: ' . $info['speed_download'] . ' bytes<br />';
        echo 'Content Type: ' . $info['content_type'] . '<br />';
        echo 'Queried with: ' . $info['request_header'] . '<br />';

        echo '</div>';


    }
//Close CURL conncetion.
curl_close($set_curl);

?>
</body>
</html>
Noctine
This tool is awesome, just gotta add a loop and maybe some other mods and should be all set. Thanks a lot.
Mike
Thanks, means a lot! A couple of notes, for HTTPS you may encounter some errors, it will return the website as down if there is a return code above 400 (404's and 500's mainly) and the timeout is set to 1 second. Just some things to take into account.
Noctine