Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Проблем с рекрусивен бот

Featured Replies

Значи написах си следното нещо:

<?php

header("Content-type: text/html; charset=Windows-1251");

function botnet($site){

if(!eregi("http://","$site")) $site = "http://$site";

@$content = file_get_contents("$site") or die("Грешка");

if(!eregi("</a>","$content")) die("<hr>Попаднах на страница без линкове ($site)");

$explode = explode("</a>","$content");

foreach($explode as $part){

$part = explode("<a href=","$part");

$part = $part[1];

$part = explode(" ","$part");

$part = $part[0];

$part = explode(">","$part");

$link = $part[0];

if("$link" !== ""){

$link = str_replace('"','',"$link");

$link = str_replace("'","","$link");

$link = str_replace("./","","$link");

$link = str_replace("//","/","$link");

$link = str_replace(":/","://","$link");

$end = end(explode(".","$link"));

if(!eregi("http://","$link")){

$end2 = end(explode("/","$site"));

$new = str_replace("$end2","","$site");

$link = "$new$link";

}

echo "$link<br>";

botnet($link);

}

}

}

echo "<form method=post>";

echo "Сайт: <input type=text name=site><p><input type=submit value='Вземи линковете'></form><p>";

$site = $_POST['site'];

if("$site" == "") exit;

botnet($site);

?>

Работи перфектно, обаче има един брутален проблем:

да речем го пускам да индексира www.site.com

в www.site.com има линк към www.site2.com

взима линковете и от двата сайта, както и линковете от линковете и т.н.

НО

ако в сайт www.site2.com има линк към www.site.com ботът запецва, защото започва да се лашка напред-назад из двата сайта

Някакви идеи, как може да се избегне това, защото аз нищо не можах да измисля sad.gif

Благодаря много

Трябва да пазиш пътя, по който си стигнал до текущия сайт - в някакъв масив примерно, и да не допускаш преход към сайт, който вече е обработен.

  • Автор

Пробвах го този вариант, ама все нещо не мога да олучиа, къде баш да добавям индексираните сайтове в масива, и къде да проверявам :)

Някакви предложения ?

Пробвах го този вариант, ама все нещо не мога да олучиа, къде баш да добавям индексираните сайтове в масива, и къде да проверявам :)

Някакви предложения ?

<?php

header("Content-type: text/html; charset=UTF-8");


function botnet($site){

global $visited;

	if (strpos($visited,$site)===false) {

		$visited .=$site;


		if(!eregi("http://","$site")) $site = "http://$site";

		@$content = file_get_contents("$site") or die("Грешка");

		if(!eregi("</a>","$content")) die("<hr>Попаднах на страница без линкове ($site)");

		$explode = explode("</a>","$content");

		foreach($explode as $part){

			$part = explode("<a href=","$part");

			$part = $part[1];

			$part = explode(" ","$part");

			$part = $part[0];

			$part = explode(">","$part");

			$link = $part[0];

			if("$link" !== ""){

				$link = str_replace('"','',"$link");

				$link = str_replace("'","","$link");

				$link = str_replace("./","","$link");

				$link = str_replace("//","/","$link");

				$link = str_replace(":/","://","$link");

				$end = end(explode(".","$link"));

				if(!eregi("http://","$link")){

					$end2 = end(explode("/","$site"));

					$new = str_replace("$end2","","$site");

					$link = "$new$link";

				}

				echo "$link<br>";

				botnet($link);

			}

		}

	}


}


echo "<form method=post>";

echo "Сайт: <input type=text name=site><p><input type=submit value='Вземи линковете'></form><p>";

$site = $_POST['site'];

if("$site" == "") exit;

$visited='';

botnet($site);

?>

Нещо подобно.

  • Автор

Благодаря за помощта, но и тук има проблем (опитай да речем hit.bg)

А и пак индексира по няколко пъти даден линк

Благодаря за помощта, но и тук има проблем (опитай да речем hit.bg)

А и пак индексира по няколко пъти даден линк

Аз само дадох някакъв пример. Не съм казал, че е работещ на 100% код. Има нужда да се поработи още доста по него.

Ето още малко променен кода :

<?php

header("Content-type: text/html; charset=UTF-8");


function botnet($site){

	$rurl=parse_url($site);

	$host=substr($rurl['host'],0,strrpos($rurl['host'],'.'));

	$host = str_replace('www.','',$host);


	global $visited;


	if (strpos($visited,";".$host.";")===false) {


		$visited .= $host.';';


		if(!eregi("http://","$site")) $site = "http://$site";

		@$content = file_get_contents("$site"); /* or die("Грешка");*/

		if ($content<>'') {

			if(eregi("</a>","$content")) {

				$explode = explode("</a>","$content");

				foreach($explode as $part){

					$part = explode("<a href=","$part");

					$part = $part[1];

					$part = explode(" ","$part");

					$part = $part[0];

					$part = explode(">","$part");

					$link = $part[0];

					if("$link" !== ""){

						$link = str_replace('"','',"$link");

						$link = str_replace("'","","$link");

						$link = str_replace("./","","$link");

						$link = str_replace("//","/","$link");

						$link = str_replace(":/","://","$link");

						$end = end(explode(".","$link"));

						if(!eregi("http://","$link")){

							$end2 = end(explode("/","$site"));

							$new = str_replace("$end2","","$site");

							$link = "$new$link";

						}

						echo "Link:[$link]<br>";

						botnet($link);

					}

				}

			}

		}

	} else {

		return;

	}


}


echo "<form method=post>";

echo "Сайт: <input type=text name=site><p><input type=submit value='Вземи линковете'></form><p>";

$site = $_POST['site'];

if("$site" == "") exit;

$visited=';google;yahoo;msn;bgtop;youtube;vbox7;';

botnet($site);

?>

И ако обичаш, поправи заглавието на темата.

  • Автор

Човек, златен си biggrin.gif

<?php

header("Content-type: text/html; charset=Windows-1251");

function botnet($site){

$file = "informacion.inc";

$count = -1;

$site = str_replace("www.","","$site");

$site = str_replace("https://","","$site");

if(!eregi("http://","$site")) $site = "http://$site";

		@$content = file_get_contents("$site");

if(!eregi("</a>","$content")) foreach($links as $page) botnet($page);

$strlen = strlen("$site");

$strlen = $strlen - 7;

$last = $site[strlen($site)-$strlen];

if("$last" !== "#" and "$last" !== "/"){

	@$rurl=parse_url($site);

$host = $rurl[host];

	global $visited;


	if (strpos($visited,";".$host.";")===false) {


		$visited .= $host.';';


		if(!eregi("http://","$site")) $site = "http://$site";

		if ($content<>'') {

			if(eregi("</a>","$content")) {

				$explode = explode("</a>","$content");

				foreach($explode as $part){

					$part = explode("<a href=","$part");

					$part = $part[1];

					$part = explode(" ","$part");

					$part = $part[0];

					$part = explode(">","$part");

					$link = $part[0];

					if("$link" !== ""){

						$link = str_replace('"','',"$link");

						$link = str_replace("'","","$link");

						$link = str_replace("./","","$link");

						$link = str_replace("//","/","$link");

						$link = str_replace(":/","://","$link");

						if(!eregi("http://","$link")){

							$end2 = end(explode("/","$site"));

							$new = str_replace("$end2","","$site");

							$link = "$new/$link";

						}

$link = str_replace("//","/","$link");

						$link = str_replace(":/","://","$link");

$content = file_get_contents("$file");

$content = "$link\n$content";

file_put_contents("$file","$content");

$count = $count + 1;

$links[$count] = $link;

						botnet($link);

					}

				}

			}

		}

	} else {

		return;

	}


}

}

echo "<form method=post>";

echo "Сайт: <input type=text name=site><p><input type=submit value='Вземи линковете'></form><p>";

$site = $_POST['site'];

if("$site" == "") exit;

echo "Моля, изчакайте, ботът индексира в момента<p>";

flush();

botnet($site);

?>

Мисля, че всичко е ок, поне за момента

Редактирано от SK0RP10N (преглед на промените)

  • 2 седмици по-късно...

Здравейте :) Начинаещ съм и бих искал малко повече информация за този бот. Моите въпроси относно този бот: За какво служи самият бот? Може ли да го сложа в моят форум? Ако може къде и как да го сложа? Моят форум е направен с готова система Forumotion. Ето го и моят форум. версията на моят форум в момента е phpBB2.

Редактирано от Flox4o87 (преглед на промените)

  • 2 месеца по-късно...

Здравейте :baby: Начинаещ съм и бих искал малко повече информация за този бот. Моите въпроси относно този бот: За какво служи самият бот? Може ли да го сложа в моят форум? Ако може къде и как да го сложа? Моят форум е направен с готова система Forumotion. Ето го и моят форум. версията на моят форум в момента е phpBB2.

Това е програма, която изписва всички линкове, които се намират на една уеб страница, зададена от потребителя, а това, което ти най-вероятно разбираш под "бот" (някакъв тип автоматизиран потребител, предполагам) няма нищо общо с това, което този скрипт е, така че, отговорът е - не. :lol6:

Редактирано от Мишо (преглед на промените)

  • 1 месец по-късно...

Това е програма, която изписва всички линкове, които се намират на една уеб страница, зададена от потребителя, а това, което ти най-вероятно разбираш под "бот" (някакъв тип автоматизиран потребител, предполагам) няма нищо общо с това, което този скрипт е, така че, отговорът е - не. :hush:

Да, точно тов разбирам под "бот". Все пак благодаря за отговора.

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.