[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сканирование диапазона
moksel
Здрв,
помогите плиз чайнику из этого кода сократить до:
чтобы сканировался заданный диапазон ip, напр 212.20.5.1 - 212.20.6.255
порт 81,
и после сканирования найденное писалось в файл на хосте.
это я взял кусок авторского плагина от дюны (там он такое делает), берет из имени файла и сканирует.
весь файл, если нужен

http://9971.96.lt/tv_channel_list_screen.rar


if (file_exists( $m3u_dir . '/' . $caption_g . '.txt'))
{
$proxy_list_file = $m3u_dir . '/' . $caption_g . '.txt';
$proxy_list = file_get_contents($proxy_list_file);
$proxy_list = str_replace("\n", "", $proxy_list);
$proxy_list = str_replace("\r", "", $proxy_list);
$proxy_arr = explode("http://", $proxy_list);
unset($proxy_arr[0]);
$proxy_arr = array_values($proxy_arr);
$result = count($proxy_arr);
if ($count_doc > $result)
{
$count_doc = 0;
}
if ($count_doc <= 0)
{
$count_doc = 1;
}
$count_doc_r = $count_doc - 1;
$proxy_arr = array_slice($proxy_arr, $count_doc_r);
foreach($proxy_arr as $proxy_ip)
{
++$count_doc;

$port = explode(':', $proxy_ip);
$ip = $port[0];
$port = $port[1];
hd_silence_warnings();
$fp = @fsockopen($ip, $port, $errno, $errstr, 0.2);
hd_restore_warnings();
if ($fp)
{
$end_ipport = $ip . ":" . $port;
$end_ipport = str_replace("\n", "", $end_ipport);
$end_ipport = str_replace("\r", "", $end_ipport);
$daten = str_replace($ip_port, $end_ipport, $daten);
$dateihandle1 = fopen($m3u_file,"w");
if (!$dateihandle1)
hd_print("НЕ МОГУ ЗАПИСАТЬ НА USB/HDD");
fwrite($dateihandle1, $daten);
@fclose($dateihandle1);
@fclose($fp);
break;
}
}

$count_file = '/tmp/' . $caption_g . '.cnt';
$new_count = $count_doc;
$date_count = fopen($count_file,"w");
if (!$date_count)
{
return ActionFactory::show_title_dialog("Не могу записать в tmp Что-то здесь не так!!!");
}
fwrite($date_count, $new_count);
@fclose($date_count);
if (!$end_ipport)
{
$prov = "Плейлист: $caption_g.m3u";
$ipd = "Все ($result шт.) IP адреса proxy из файла: $caption_g.txt";
$url = "ПРОВЕРЬТЕ: возможно этот список proxy не для этого плейлиста.";
$defs = $this->do_get_proxy_defs($prov, $port, $ipd, $url, $plugin_cookies);
return ActionFactory::show_dialog
(
"Прокси из списка $caption_g.txt не найден, повторить поиск?",
$defs,
true
);
}
else
{
$url = 'plugin_launcher://altiptv/';
return ActionFactory::launch_media_url($url);
}
}

elseif (preg_match('/^(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])){3}-(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])){3}$/i', $caption_g))
{
$ipds = explode('-', $caption_g);
$ip1 = $ipds[0];
$ip2 = $ipds[1];
$an = explode('.', $ip1);
$an = $an[2];
$en = explode('.', $ip2);
$en = $en[2];
$re = $en - $an;
if ($count_doc > $re)
{
$count_doc = 0;
}
$an = $an + $count_doc;
$en = $an;
$ipd = $caption_g;
$prov = "Диапазон из названия плейлиста";
}
elseif (file_exists('/tmp/' . $caption_g . '.ipi'))
{
$ipi_file = '/tmp/' . $caption_g . '.ipi';
$ipi_info = file_get_contents($ipi_file);
$tmp = explode('prov:', $ipi_info);
$ipd = $tmp[0];
$prov = $tmp[1];
$ipds = explode('-', $ipd);
$ip1 = $ipds[0];
$ip2 = $ipds[1];
$an = explode('.', $ip1);
$an = $an[2];
$en = explode('.', $ip2);
$en = $en[2];
$re = $en - $an;
if ($count_doc > $re)
{
$count_doc = 0;
}
$an = $an + $count_doc;
$en = $an;
}
else
{
$domain = $ip;
$whis_url = 'http://ip-whois.net/ip_geo1.php?ip=' . $domain;
$page = HD::http_get_document($whis_url);
$page = iconv('windows-1251', 'UTF-8',$page);
$ipd = explode('inetnum:', $page);
$ipd = strstr($ipd[1], '<br>', true);
$prov = explode('descr:', $page);
$prov = strstr($prov[1], '<br>', true);
$prov = preg_replace('|\s+|', '', $prov);
$ipd = preg_replace('|\s+|', '', $ipd);
$new_ip_inf = $ipd . "prov:" . $prov;
$ip_inf = '/tmp/' . $caption_g . '.ipi';
if (!$ipd===false)
{
$date_ip = fopen($ip_inf,"w");
if (!$date_ip)
{
hd_print("Не могу записать в tmp Что-то здесь не так!!!");
}
fwrite($date_ip, $new_ip_inf);
@fclose($date_ip);
}
$ipds = explode('-', $ipd);
$ip1 = $ipds[0];
$ip2 = $ipds[1];
$an = explode('.', $ip1);
$an = $an[2];
$en = explode('.', $ip2);
$en = $en[2];
$re = $en - $an;
if ($count_doc > $re)
{
$count_doc = 0;
}
$an = $an + $count_doc;
$en = $an;
curl_close($ch);
if (!$ip2) {
return ActionFactory::show_title_dialog("whois сервис не отвечает или не доступен!!!");
}
}

if (!$ip2) {
return ActionFactory::show_title_dialog("Что-то здесь не так!!!");
}
else
{
$count_file = '/tmp/' . $caption_g . '.cnt';
$new_count = $count_doc +1;
$date_count = fopen($count_file,"w");
if (!$date_count)
{
return ActionFactory::show_title_dialog("Не могу записать в tmp Что-то здесь не так!!!");
}
fwrite($date_count, $new_count);
@fclose($date_count);
$port_f = false;
if (file_exists('/tmp/' . $caption_g . '.prt'))
{
$prt_file = '/tmp/' . $caption_g . '.prt';
$temp_port = file_get_contents($prt_file);
if ($temp_port !== '0')
{
$port = $temp_port;
$port_f = true;
}
}



_____________
:0
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.