Automatically redirect browser to many ip addresses using PHP or Javascript
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 so开发者_如何转开发me cool solutions.
Use cURL
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"></script>
<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>
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;
}
?>
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?
精彩评论