rendered paste body<?php
set_time_limit(0);
function ping($host) {
$package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";
/* create the socket, the last '1' denotes ICMP */
$socket = socket_create(AF_INET, SOCK_RAW, 1);
/* set socket receive timeout to 1 second */
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 0));
/* connect to socket */
socket_connect($socket, $host, null);
/* record start time */
list($start_usec, $start_sec) = explode(" ", microtime());
$start_time = ((float) $start_usec + (float) $start_sec);
socket_send($socket, $package, strlen($package), 0);
if(@socket_read($socket, 255)) {
list($end_usec, $end_sec) = explode(" ", microtime());
$end_time = ((float) $end_usec + (float) $end_sec);
$total_time = $end_time - $start_time;
return $total_time;
} else {
return false;
}
socket_close($socket);
}
$null = '';
if (php_sapi_name() == 'cli' && isset($argv[1]) || isset($argv[2]) || isset($argv[3]) || isset($argv[4])) {
$oct[0] = $argv[1];
$oct[1] = $argv[2];
$oct[2] = $argv[3];
$oct[3] = $argv[4];
}
elseif (php_sapi_name() == 'cli') {
echo 'First Octlet: ';
if ($buffer = trim(fgets(STDIN)) != $null) {
$oct['0'] = $buffer;
echo 'NOTICE: Setting first octlet to [' . $oct['0'] . '].0.0.0' . "\n";
}
else {
$oct['0'] = '0';
echo 'ERROR: Setting first octlet to defualt [' . $oct['0'] . '].0.0.0' . "\n";
}
echo 'Second Oct: ';
if ($buffer = trim(fgets(STDIN)) != $null) {
$oct['1'] = $buffer;
echo 'NOTICE: Setting first octlet to 0.[' . $oct['1'] . '].0.0' . "\n";
}
else {
$oct['1'] = '0';
echo 'ERROR: Setting first octlet to defualt 0.[' . $oct['1'] . '].0.0' . "\n";
}
echo 'Third Oct: ';
if ($buffer = trim(fgets(STDIN)) != $null) {
$oct['2'] = $buffer;
echo 'NOTICE: Setting first octlet to 0.0.[' . $oct['2'] . '].0' . "\n";
}
else {
$oct['2'] = '0';
echo 'ERROR: Setting first octlet to defualt 0.0.[' . $oct['2'] . '].0' . "\n";
}
echo 'Forth Oct: ';
if ($buffer = trim(fgets(STDIN)) != $null) {
$oct['3'] = $buffer;
echo 'NOTICE: Setting first octlet to 0.0.0.[' . $oct['3'] . ']' . "\n";
}
else {
$oct['3'] = '0';
echo 'ERROR: Setting first octlet to defualt 0.0.0.[' . $oct['3'] . ']' . "\n";
}
}
else {
$oct['0'] = '0';
$oct['1'] = '0';
$oct['2'] = '0';
$oct['3'] = '0';
}
for ($ip['0'] = $oct['0']; $ip['0'] <= '255'; $ip['0']++) {
for ($ip['1'] = $oct['1']; $ip['1'] <= '255'; $ip['1']++) {
for ($ip['2'] = $oct['2']; $ip['2'] <= '255'; $ip['2']++) {
for ($ip['3'] = $oct['3']; $ip['3'] <= '255'; $ip['3']++) {
$addr = $ip['0'] . '.' . $ip['1'] . '.' . $ip['2'] . '.' .$ip['3'] . "\n";
if (ping($addr) != $false) {
echo $addr . "\n";
}
}
}
}
}
?>