Skocz do zawartości

Skrypt do lapania botów odwiedzających strone.


jamesisko

Rekomendowane odpowiedzi

Witam,

W ZWIĄZKU Z KILKOMA PYTANIAMI I PROBLEMAMI PRZY INSTALACJI TEGO KODU NA STRONACH WWW, POSTANOWILEM NIE ODPOWIADAĆ NA PYTANIA I JESZCZE BARDZIEJ ZACIEMNIAC SPRAWĘ PROSTEJ INSTALACJI KODU NA STRONACH. Z TEGO TEŻ POWODU WCZEŚNIEJ UDOSTĘPNIONY KOD POSTANOWIŁEM PRZEROBIC. DODAŁEM KILKA RZECZY KTÓRE UŁATWIĄ INSTALACJĘ, ZWIĘKSZĄ MOŻLIWOŚCI KONFIGURACYJNE JAK RÓWNIEŻ WPŁYNĄ NA WYDAJNOŚĆ CAŁEGO MECHANIZMU. DLA LUDZI BĘDĄCYCH W TAMACIE PHP/MYSQL NIEKTÓRE OPISY WYDADZĄ SIĘ ŚMIESZNE I ZBĘDNE. PROBIŁEM JE JEDNAK DLA TYCH, KTÓRZY NIE WIEDZĄ ZA BARDZO Z CZYM PHP/MYSQL'a MOŻNA ZJEŚĆ.

TAKŻE ZNAWCY TEMATU - TYKO KONKRETNE UWAGI PROSZE.

(zmiany z dnia 12.08.2005r.)

09.05.2006 - pod adresem: www.stats.dobre-firmy.pl/demo.php - dostępna jest wersja demo nowej wersji kodu.

Wkrótce zostanie udostepniona poszerzona wersja tej demowki.

Koeljny etap to juz satty z wykresami ;)

Dla niewtajemniczonych i nowych użytkowników podaję dwa przyklady dzialania kodu:

https://www.dodajfirme.pl/roboty.php

https://www.kmd07.pl/roboty.php

oraz wyjaśniam, że kod służy do odławiania robotów, botów, crawlerów czy jak ich tam zwał odwiedzających strony internetowe.

OK, to zaczynamy. Podam w trzech krokach instrukcję instalacji kodu na stronie internetowej.

ZANIM ZACZNIECIE INSTALOWAC - POCZYTAJCIE KOMENTARZE KTÓRE UMIEŚCIŁEM W PLIKACH

DLA MNIEJ ZAAWANSOWANYCH UZYTKOWNIKOW DOSTARCZA PRZYDATNYCH INFORMACJI.

Kod można używać na stronach, które wykorzystują PHP i mają dostęp do bazy danych MySQL.

Póki co, nie próbowałem instalować na różnorodnych wytworach dla leniwców i laików z php (chodzi tutaj o fora, gotowe sklepy internetowe typu osCommerce, itp.)

1. Utworzyc nalezy plik o nazwie np: conf.php, a w nim:

Jest to plik konfiguracyjny. W dozwolonym miejscu można zmienić kilka opcji.

Niektóre, takie jak dane do bazy danych TRZEBA KONIECZNIE zmienić, tak by możliwe było

połączenie się z bazą danych MySQL.




<?

/*



Autorem skryptu jest Jamesisko: james@red7.pl

Skrypt jest całkowicie darmowy, można go rozpowszechniać, modyfikować. Słowem używać dowoli.



Bardzo proszę podawać informacje o stronach, na których kod jest używany.

Tego typu informacje, sa mi niezbedne do oceny przydatnosci tego co robie, co wplywa na

motywacje do pisania kolejnych kodow, modyfikacje obecnych.



Jesli bedzie wieksze zainteresowanie tym co robie, udostepnie tez kod ktory dziala w ten sposob:



www.kmd07.pl/referer.php

www.dodajfirme.pl/referer.php





W planach, dotyczacych tego kodu:



- wyswietlanie odwiedzin wybranego bota

- sortowanie wg. ip botow

- wybor unikalnych adresow ip z jakich byly odwiedziny poszczegolnych botow.

- robienie backupu tabeli i czyszczenie obecnej (opcja po zalogowaniu sie)

- wybor, czy roboty.php dostępne dla wszystkich czy tylko po zalogowaniu sie.







*/



#################################################################################

#################################################################################

#################################################################################



##### tylko to jest do edycji przez użytkownika

##### w tym miejscu dane do polaczenia sie z bazą danych mysql'a:



# - TO, I TYLKO TO NALEŻY ZMIENIĆ KONIECZNIE NA SWOJE USTAWIENIA.









$db_dane["hostname"] = "twoj_serwer_sql";  //zazwyczaj jest to localhost

$db_dane["user"] = "nazwa_uzytkownika_bazy_danych";

$db_dane["password"] = "haslo_uzytkownika_bazy_danych";

$db_dane["db"] = "twoja_baza_danych";









# - PONIŻSZE DANE MOŻNA ZMIENIĆ, JEDNAK NIE JEST TO KONIECZNE.

# - NA DOMYŚLNYCH USTAWIENIACH BĘDZIE CHODZIŁO ŚWIETNIE



# - ponizej nowa rzecz: jesli "1" to bedzie zliczalo ilosc wizyt kazdego 

# - z botow dla poszczegolnych linkow, jesli "0" to tylko beda

# - same linki pokazywane

# - Chodzi tutaj o problem wydajności. Jeśli macie mocne maszyny

# - w sensie serwery to ustawcie 1. Jednak dla bardzo duzej bazy

# - zaindeksowanych boto i mocny serwer sql moze sie zagotowac

# - mozna to ustawiac i odpalac dla samego siebie do sprawdzenia

# - wazne by inni nie uruchamiali skryptu z tym ustawieniem

# - $bcpl skrot od: bot count per link



$bcpl = "0";



# - liczba robotow do pobrania i wyswietlenia na stronie.

# - przy wlaczonej kompresji spokojnie mozna ustawic na 1000



$liczba_wynikow = "100";



# - nazwa tabeli gdzie sa zapisywane dane:



$tabela_botow = "roboty";



# - tytul dla storny roboty.php



$tytul_strony = "Statystyki domeny $_SERVER[HTTP_HOST]";



#

#

#

#

#        PONIŻEJ W PLIKU KONFIGURACYJNYM NIC NIE ZMIENIAC 

#                 chyba, że się wie co się robi

#

#

#

#################################################################################

#################################################################################

#################################################################################





# tutaj jeśli ktoś wie co robi - prosze bardzo - zmiany dokonywac mozna

# klasa do laczenia sie z mysql'em i wykonywania zapytań:





class Baza

{

var $hostname;

var $username;

var $password;

var $dbname;

var $tablename;

var $connection;

var $wynikquery;

var $blad = 'errmsg';





function Baza($err = 'errmsg')

{

global $db_host, $db_user, $db_passwd, $db_name;



$this->blad = $err;

$this->hostname = $db_host;

$this->username = $db_user;

$this->password = $db_passwd;

$this->dbname = $db_name;



$this->connect();

}



function connect()

{

 $this->connection = @mysql_connect($this->hostname, $this->username, $this->password)

    or $this->error("::.Blad polaczenia z MySQL .::.");

 @mysql_select_db($this->dbname)

    or $this->error("::. Nie mozna polaczyc z baza danych .::.");

}

 function error($errormesg)

 {

 	echo "<b>.$errormesg</b><br>";

 	if('halt' == $this->blad) { exit; }

 }

 	function query($sql)

 	{

   $this->wynikquery = @mysql_query($sql, $this->connection) or die("<center><BR><BR><font color=\"red\">Bledne zapytanie: <b>$sql</b></font></center>");

   return $this->wynikquery;

 	}  	

}







#  !!!! POD ŻADNYM POZOREM NIE ZMIENIAĆ !!!!

#        jeśli wiesz co robisz - możesz zmienić





$db_host = $db_dane['hostname']; 

$db_user = $db_dane['user'];

$db_passwd = $db_dane['password'];

$db_name = $db_dane['db'];



$DB = new Baza();



$base_url_to_jump = $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$base_url_to_jump = "https://".$base_url_to_jump;



?>





2. Nastepnie tworzymy plik roboty.php a w nim:



<?

/*



Autorem skryptu jest Jamesisko: james@red7.pl

Skrypt jest całkowicie darmowy, można go rozpowszechniać, modyfikować. Słowem używać dowoli.



Bardzo proszę podawać informacje o stronach, na których kod jest używany.

Tego typu informacje, sa mi niezbedne do oceny przydatnosci tego co robie, co wplywa na

motywacje do pisania kolejnych kodow, modyfikacje obecnych.



Jesli bedzie wieksze zainteresowanie tym co robie, udostepnie tez kod ktory dziala w ten sposob:



www.kmd07.pl/referer.php

www.dodajfirme.pl/referer.php





W planach, dotyczacych tego kodu:



- wyswietlanie odwiedzin wybranego bota

- sortowanie wg. ip botow

- wybor unikalnych adresow ip z jakich byly odwiedziny poszczegolnych botow.

- robienie backupu tabeli i czyszczenie obecnej (opcja po zalogowaniu sie)

- wybor, czy roboty.php dostępne dla wszystkich czy tylko po zalogowaniu sie.





*/



session_start();



# - ważne - zanim odpalicie skrypt, dodacie do index.php czy tez innego

# - pliku kod do zliczania botkow - zainstalujcie najpierw kod, czyli

# - nalezy utworzyc tabele do trzymania wynikow, inaczej

# - ciagle bedzie blad, bo php bedzie chcial zapisac do tabeli

# - ktora nie istnieje



# - jak zainstalowac? Bardzo prosto. Wystarczy, zaraz po wgraniu

# - na serwer (tylko wgraniu i ustawieniu w conf.php informacji)

# - uruchomic roboty.php z parametrem powodujacym tworzenie tabeli:



### czyli: ###



### www.twoja-domena.pl/roboty.php?install=1



# - i to wystarczy.



if(session_is_registered("table_create"))

{

echo '<center><font color="green" size="5">Instalacja bazy danych zakończona powodzeniem. <BR>Tabela '.$tabela_botow.' została utworzona.</font></center><BR><BR>';

session_unregister("table_create"); 

}



if($install=="1")

{

include_once("conf.php");



# - funcka odpowedzialna za utworzenie tabeli

# - w bazie danych. Tabela ta trzyma zbierane info. 



function create_roboty()

{

global $DB, $tabela_botow, $table_create;

$sql = "

CREATE TABLE IF NOT EXISTS $tabela_botow

(

id int(20) unsigned not null auto_increment,

primary key (id),

data varchar(50),

bot varchar(250),

ip varchar(100),

url varchar(250)

)";



$ok = $DB->query($sql);

if($ok) $table_create = 1;

}



$table_create = 0;

create_roboty();



   if($table_create == 1)

   {

    session_register("table_create");

header("Location: $base_url_to_jump");



   }

   elseif($table_create == 0)

   {

  echo '<center><BR><BR><font color="red" size="5">!!! TABELA BAZ DANYCH NIE ZOSTAŁA UTWORZONA !!!</font></center><BR><BR>'; 

   }

}









# - jesli serwer dziala z safe_mode=off to:

# - jesli macie safe_mode = on - nie uzywajcie tego poprostu

# - wyciac ten kawalutek kodu



if(function_exists('set_time_limit')) 

{ 

 set_time_limit(0); 

} 





# - jesli serwer umozliwia wam uzycie funkcji do buforowania ob_start();

# - oraz funkcji do kompresji zlib ob_gzhandler() 

# - to ustawienie ponizszego kodu

# - znacznie przyspieszy dzialanie skryptu

# - warunek tutaj jest jednak taki, by nie bylo ustawionej kompresji

# - bezpośrednio w  pliku .htaccess czyli by nie bylo wpisu:

# - php_flag zlib.output_compression On 

# - php_value zlib.output_compression_level 5

# - jesli bedzie wywalalo blad - poprostu usuncie te linie kodu...



if(function_exists('ob_start') && function_exists('ob_gzhandler')) 

{ 

   ob_start("ob_gzhandler");

}



# - kod do uniezaleznienia kodu od struktury katalogow 

# - (rzeczywistych bądź wirtualnych [mod_rewrite, .htaccess] ):

# - niesprawdzalem ale powinno dzialac.

# - jesli cos nie bedzie działac - wywalcie to poprostu.

# - w praniu wyjdzie wszystko..



ini_set ("include_path", ini_get ("include_path") . ':../:../../:../../../:../../../../:../../../../../');





#########################



include_once("conf.php");





if(!$show_od) $show_od = "0";





echo '<html><head><Title>'.$tytul_strony.'</title>';

echo '<meta http-equiv="content-type" content="text/html;charset=iso-8859-2">';

echo '</head><body>';







if(!$per_day)

{

$sql_count = "select count(id) from $tabela_botow";

$row_count = mysql_fetch_array($DB->query($sql_count));

$ilosc_w_bazie = $row_count[0];

}

elseif($per_day)

{

$per_day = substr($per_day, 0, 10);

$sql_count = "select count(id) from $tabela_botow where data like '$per_day%'";

$row_count = mysql_fetch_array($DB->query($sql_count));

$ilosc_w_bazie = $row_count[0];

}







echo '<center><table border="1" cellpadding="2" cellspacing="0" bordercolor="red" width="100%">';





if($bcpl=='1') echo '<TR><TD colspan="6">';

elseif($bcpl=='0') echo '<TR><TD colspan="5">';



if(!$per_day)

{

$sql_google = "select count(id) from $tabela_botow where bot like '%Googlebot%'";

$row_google = mysql_fetch_array($DB->query($sql_google));

$ile_google = $row_google[0];



$sql_google_media = "select count(id) from $tabela_botow where bot like 'Mediapartners-Google/2.1%'";

$row_google_media = mysql_fetch_array($DB->query($sql_google_media));

$ile_google_media = $row_google_media[0];



$sql_yahoo_slurp = "select count(id) from $tabela_botow where bot like '%Yahoo! Slurp%'";

$row_yahoo_slurp = mysql_fetch_array($DB->query($sql_yahoo_slurp));

$ile_yahoo_slurp = $row_yahoo_slurp[0];



$sql_msn = "select count(id) from $tabela_botow where bot like 'msnbot%'";

$row_msn = mysql_fetch_array($DB->query($sql_msn));

$ile_msn = $row_msn[0];



$sql_onet = "select count(id) from $tabela_botow where ip like '213.180.128%'";

$row_onet = mysql_fetch_array($DB->query($sql_onet));

$ile_onet = $row_onet[0];





echo "<font size=\"2\">Wszystkich: <B>$ilosc_w_bazie</b>  Googlebotów: <B>$ile_google</b> .::. Mediapartners: <B> $ile_google_media</B> .::. msnbot/0.3: <B>$ile_msn</b> .::. Yahoo! Slurp: <B>$ile_yahoo_slurp</b> .::. Onet: <B>$ile_onet</b>    </font>";

}

elseif($per_day)

{



$sql_google = "select count(id) from $tabela_botow where bot like '%Googlebot%' and data like '$per_day%'";

$row_google = mysql_fetch_array($DB->query($sql_google));

$ile_google = $row_google[0];





$sql_google_media = "select count(id) from $tabela_botow where bot like 'Mediapartners-Google/2.1%' and data like '$per_day%'";

$row_google_media = mysql_fetch_array($DB->query($sql_google_media));

$ile_google_media = $row_google_media[0];



$sql_yahoo_slurp = "select count(id) from $tabela_botow where bot like '%Yahoo! Slurp%' and data like '$per_day%'";

$row_yahoo_slurp = mysql_fetch_array($DB->query($sql_yahoo_slurp));

$ile_yahoo_slurp = $row_yahoo_slurp[0];





$sql_msn = "select count(id) from $tabela_botow where bot like 'msnbot%' and data like '$per_day%'";

$row_msn = mysql_fetch_array($DB->query($sql_msn));

$ile_msn = $row_msn[0];



$sql_onet = "select count(id) from $tabela_botow where ip like '213.180.128%' and data like '$per_day%'";

$row_onet = mysql_fetch_array($DB->query($sql_onet));

$ile_onet = $row_onet[0];





echo "<font size=\"2\">Wszystkich w dniu <B>$per_day</b>:    <B>$ilosc_w_bazie</b>  ";

echo "Googlebotów: <B>$ile_google</b> .::. ";

echo "Mediapartners: <B> $ile_google_media</b> .::. ";

echo "msnbot: <b>$ile_msn</b> .::. ";

echo "Yahoo! Slurp: <B>$ile_yahoo_slurp</b> .::. ";

echo "Onet: <B>$ile_onet</b>";







echo "</font>    <a href=\"$PHP_SELF\"><B>We wszystkch dniach</b></a>";





}



echo '</td></tr>';



if(!$per_day) $sql = "select * from $tabela_botow order by id desc limit $show_od, $liczba_wynikow";

elseif($per_day) $sql = "select * from $tabela_botow where data like '$per_day%' order by id desc limit $show_od, $liczba_wynikow"; 



$dane = $DB->query($sql);



while($row = mysql_fetch_array($dane))

{

echo '<TR>';

echo "<TD><font size=\"1\">$row[id]</font></td>";

if(!$per_day) echo "<TD><font size=\"1\"><a href=\"$PHP_SELF?per_day=$row[data]\">$row[data]</a></font></td>";

elseif($per_day) echo "<TD><font size=\"1\">$row[data]</font></td>";



if($row[bot]!='') echo "<TD><font size=\"1\">$row[bot]</font></td>";

else

{

if(eregi("213.180.128", $row[ip])) echo "<TD><font size=\"1\">Onet.pl</font></td>";

else echo "<TD><font size=\"1\">Nie przedstawił sie</font></td>";

}

echo "<TD><font size=\"1\">$row[ip]</font></td>";

echo "<TD><font size=\"1\"><a href=\"https://$row[url]\" target=\"_blank\">$row[url]</a></font></td>";







if($bcpl=='1')

{

if(!$per_day)

{

 $sql_c_google = "select count(id) from $tabela_botow where bot like '%googlebot%' and url='$row[url]'";

 $row_c_google = mysql_fetch_array($DB->query($sql_c_google));

 

 $sql_c_yahoo = "select count(id) from $tabela_botow where bot like '%Yahoo! Slurp%' and url='$row[url]'";

 $row_c_yahoo = mysql_fetch_array($DB->query($sql_c_yahoo));

 

 $sql_c_msn = "select count(id) from $tabela_botow where bot like '%msnbotp%' and url='$row[url]'";

 $row_c_msn = mysql_fetch_array($DB->query($sql_c_msn));

 

 $sql_c_mp = "select count(id) from $tabela_botow where bot like 'Mediapartners-Google%' and url='$row[url]'";

 $row_c_mp = mysql_fetch_array($DB->query($sql_c_mp));

 

 $sql_c_onet = "select count(id) from $tabela_botow where ip like '213.180.12%' and url='$row[url]'";

 $row_c_onet = mysql_fetch_array($DB->query($sql_c_onet));

}

else

{

 $sql_c_google = "select count(id) from $tabela_botow where bot like '%googlebot%' and url='$row[url]' and data like '$per_day%'";

 $row_c_google = mysql_fetch_array($DB->query($sql_c_google));

 

 $sql_c_yahoo = "select count(id) from $tabela_botow where bot like '%Yahoo! Slurp%' and url='$row[url]' and data like '$per_day%'";

 $row_c_yahoo = mysql_fetch_array($DB->query($sql_c_yahoo));

 

 $sql_c_msn = "select count(id) from $tabela_botow where bot like '%msnbotp%' and url='$row[url]' and data like '$per_day%'";

 $row_c_msn = mysql_fetch_array($DB->query($sql_c_msn));

 

 $sql_c_mp = "select count(id) from $tabela_botow where bot like 'Mediapartners-Google%' and url='$row[url]'";

 $row_c_mp = mysql_fetch_array($DB->query($sql_c_mp));

 

 $sql_c_onet = "select count(id) from $tabela_botow where ip like '213.180.12%' and url='$row[url]' and data like '$per_day%'";

 $row_c_onet = mysql_fetch_array($DB->query($sql_c_onet));

}



echo '<td><font size="1">';

echo "Url visited by: GB: <B>$row_c_google[0]</b>   YS: <B>$row_c_yahoo[0]</b>   MSN: <B>$row_c_msn[0]</b>   ONET: <B>$row_c_onet[0]</b>   MP <B>$row_c_mp[0]</b>";



echo "</font></td>";

}



echo '</tr>';

}





if($bcpl=='1') echo '<TR><TD colspan="6"><center>';

elseif($bcpl=='0') echo '<TR><TD colspan="5"><center>';



if(!$per_day)

{



if($ilosc_w_bazie > $liczba_wynikow)

{

$liczba_stron = $ilosc_w_bazie / $liczba_wynikow;

$liczba_stron = ceil($liczba_stron);

if($show_od != "0")

{

 echo "<a href=\"$PHP_SELF?show_od=0\"><font size=\"2\">1</font></a>   ";

}

else echo "<B>1</b>  ";





for($i=1;$i<$liczba_stron;$i++)

{

 $new_show_od += $liczba_wynikow;

 $strona = $i+1;

 if($show_od == $new_show_od)

 {

  echo "<font size=\"2\"><B>$strona</b></font>  ";

  

 }

 else 

 {

  echo "<a href=\"$PHP_SELF?show_od=$new_show_od\"><font size=\"2\">$strona</font></a>  ";

  

  if(!$br) $br=0;

  $br++;

  

  if($br=="37")

  {

   echo "<BR>";

   $br=0; 

  }

  

 }

}

}

}

elseif($per_day)

{

if(!$by_bot)

{



if($ilosc_w_bazie > $liczba_wynikow)

{

 $liczba_stron = $ilosc_w_bazie / $liczba_wynikow;

 $liczba_stron = ceil($liczba_stron);

 if($show_od != "0")

 {

  echo "<a href=\"$PHP_SELF?show_od=0&per_day=$per_day\"><font size=\"2\">1</font></a>   ";

 }

 else echo "<B>1</b>  ";



 

 for($i=1;$i<$liczba_stron;$i++)

 {

  $new_show_od += $liczba_wynikow;

  $strona = $i+1;

  if($show_od == $new_show_od)

  {

   echo "<font size=\"2\"><B>$strona</b></font>  ";

   

  }

  else 

  {

   echo "<a href=\"$PHP_SELF?show_od=$new_show_od&per_day=$per_day\"><font size=\"2\">$strona</font></a>  ";

   

   if(!$br) $br=0;

   $br++;

   

   if($br=="37")

   {

    echo "<BR>";

    $br=0; 

   }

   

  }

 }

} 

}

}





echo '</center></td></tr>';



echo '</table></center>';



# prosze nie usuwać tej stopki - nie wypada usuwać informacji o autorze skryptu



echo '<BR><center><table border="0" bgcolor="#FBCD4A" width="100%"><TR><TD align="center"><a href="mailto:james@red7.pl"><font size="3" color="black"><B>Autorem kodu jest: Jamesisko.</b></font></a><BR><font size="2" color="black">Skrypt całkowicie darmowy. Wszelkie modyfikacje dozwolone (z wyjątkiem usuwania informacji o autorze<BR>Kod źródłowy, opis instalacji oraz support na stronie: <b>https://www.forum.optymalizacja.com/sutra47423.html</b></font></td></tr></table></center><BR>'; 



echo '</body></html>';



?>




3. OK. Kolejny krok to zainstalowanie bazy danych. I tak:

- oba pliki umiescic tam gdzie jest index.php strony.

- w conf.php nie zapomniec na poczatku ustawic danych do swojego mysqla

- odpalic: www.twojastronka.pl/roboty.php?install=1

- w tym momencie utworzy sie tabela do trzymania info o robotach, co zostanie potwiedzone

stosownym komunikatem.

- dopiero gdy zostanie potwierdzone utworzenie tabeli w mysql'u mozna przejsc do kolejnych krokow

4. I krok ostatni. Bedzie to kolejny plik, np o nazwie lap_roboty.php:




<?



/*



Autorem skryptu jest Jamesisko: james@red7.pl

Skrypt jest całkowicie darmowy, można go rozpowszechniać, modyfikować. Słowem używać dowoli.



Bardzo proszę podawać informacje o stronach, na których kod jest używany.

Tego typu informacje, sa mi niezbedne do oceny przydatnosci tego co robie, co wplywa na

motywacje do pisania kolejnych kodow, modyfikacje obecnych.



Jesli bedzie wieksze zainteresowanie tym co robie, udostepnie tez kod ktory dziala w ten sposob:



www.kmd07.pl/referer.php

www.dodajfirme.pl/referer.php





W planach, dotyczacych tego kodu:



- wyswietlanie odwiedzin wybranego bota

- sortowanie wg. ip botow

- wybor unikalnych adresow ip z jakich byly odwiedziny poszczegolnych botow.

- robienie backupu tabeli i czyszczenie obecnej (opcja po zalogowaniu sie)

- wybor, czy roboty.php dostępne dla wszystkich czy tylko po zalogowaniu sie.





*/



#######################################################



# - tutaj podobnie jak wyzej bylo w roboty .. jesli nie dziala - usunac...

ini_set ("include_path", ini_get ("include_path") . ':../:../../:../../../:../../../../:../../../../../');



#######################################################



include("conf.php");



$roboty[] = trim("Googlebot");

$roboty[] .= trim("msnbot");

$roboty[] .= trim("Szukacz");

$roboty[] .= trim("Gigabot");

$roboty[] .= trim("LWP::Simple");

$roboty[] .= trim("EmeraldShield");

$roboty[] .= trim("Nokia");

$roboty[] .= trim("SonyEricsson");

$roboty[] .= trim("WorldWideWeb");

$roboty[] .= trim("updated");

$roboty[] .= trim("pipeLiner");

$roboty[] .= trim("appie");

$roboty[] .= trim("fukuiben");

$roboty[] .= trim("sohu-search");

$roboty[] .= trim("DELTASCAN");

$roboty[] .= trim("ZoomSpider");

$roboty[] .= trim("SurveyBot");

$roboty[] .= trim("ia_archiver");

$roboty[] .= trim("ichiro");

$roboty[] .= trim("ShowTags");

$roboty[] .= trim("CydralSpider");

$roboty[] .= trim("Holmes");

$roboty[] .= trim("UP.Browser");

$roboty[] .= trim("SiteXpert ");

$roboty[] .= trim("lwp-trivial/1.40");

$roboty[] .= trim("BecomeBot");

$roboty[] .= trim("NetSprint");

$roboty[] .= trim("Slurp");

$roboty[] .= trim("IRLbot");

$roboty[] .= trim("OmniExplorer_Bot");

$roboty[] .= trim("EasyD");

$roboty[] .= trim("NetResearchServer");

$roboty[] .= trim("LmCrawler");

$roboty[] .= trim("Missigua Locator");

$roboty[] .= trim("TurnitinBot");

$roboty[] .= trim("boitho.com-dc");

$roboty[] .= trim("NMG Spider");

$roboty[] .= trim("NutchCVS/0.06-dev");

$roboty[] .= trim("PlantyNet_WebRobot");

$roboty[] .= trim("NP");

$roboty[] .= trim("GetURL");

$roboty[] .= trim("Gooru");

$roboty[] .= trim("alltheweb");

$roboty[] .= trim("almaden");

$roboty[] .= trim("architext");

$roboty[] .= trim("jeeves");

$roboty[] .= trim("augurfind");

$roboty[] .= trim("baiduspider");

$roboty[] .= trim("bdcindexer");

$roboty[] .= trim("crawler@fast");

$roboty[] .= trim("crawl");

$roboty[] .= trim("directhit");

$roboty[] .= trim("docomo");

$roboty[] .= trim("fast-webcrawler");

$roboty[] .= trim("fluffy");

$roboty[] .= trim("frooglebot");

$roboty[] .= trim("geobot");

$roboty[] .= trim("gulliver");

$roboty[] .= trim("infoseek");

$roboty[] .= trim("hotbot");

$roboty[] .= trim("lycos");

$roboty[] .= trim("scooter");

$roboty[] .= trim("inktomi");

$roboty[] .= trim("Mediapartners-Google");



# - bylo pare pytan wiec dodaje tutaj (jak ktos podal nazwe)

# - kolejnego robota do lapania - robota LV

# - w tej chwili po tym jak sie przedstawia... moze pozniej cos zmienie



$rotoby[] .= trim("WinHttp.WinHttpRequest");  



/*



w tym miejscu mozna dodawac swoje roboty, wg powyzszego wzroru.



$roboty[] .= trim("");



*/





if(!eregi("213.180.128", $_SERVER['REMOTE_ADDR']))

{

for($ry=0;$ry<count($roboty);$ry++)

{

 if(eregi($roboty[$ry], $_SERVER["HTTP_USER_AGENT"]))

 {

 	$dat = date("Y-m-d G:i:s");

 	$user_agent = $_SERVER["HTTP_USER_AGENT"];

 	$remote_addr = $_SERVER["REMOTE_ADDR"];

 	$indeksowany_adres = $_SERVER["HTTP_HOST"];

 	$indeksowany_adres .= $_SERVER["REQUEST_URI"];

 	

 	if(strpos($indeksowany_adres, "PHPSESSID") === false)

 	{

   $sql_roboty = "insert into roboty (data, bot, ip, url) values('$dat', '$user_agent', '$remote_addr', '$indeksowany_adres')";

   $DB->query($sql_roboty);	

 	}

 }

}

}

elseif(eregi("213.180.128", $_SERVER['REMOTE_ADDR']))

{



# - z uwagi na to ze pewien robot o ip

# - 213.180.128.* czasami sie nie przedstawia, a czasem sie przedstawia

# - w zwiazku z tym, by nie bylo podwojnych wpisow, lapanie tego robota

# - zrobilem tak, by byl indeksowany tylko po jego IP

# - chodzi tutaj oczywiscie o oneta. Jeśli sie przedstawi, to jest zapisywana

# - jego nazwa, jesli nie, to przy odczytywaniu botow - jest okreslany jako Onet.pl

# - czyli, jesli jakis bot sie nie przedstawi i nie jest z IP onetu to przy wyswietlaniu

# - botow witac "Nie przedstsawil sie", jesli sie nie przedstawil i jest to IP onet.pl

# - to jest wyswietlane "Onet.pl", jesli natomiast sie przedstawi i jest to IP onet.pl

# - wyswietlana jest taka nazwa, jaka sie przedstawil.







$dat = date("Y-m-d G:i:s");

$user_agent = $_SERVER["HTTP_USER_AGENT"];

$remote_addr = $_SERVER["REMOTE_ADDR"];

$indeksowany_adres = $_SERVER["HTTP_HOST"];

$indeksowany_adres .= $_SERVER["REQUEST_URI"];



if(strpos($indeksowany_adres, "PHPSESSID") === false)

{

 $sql_roboty = "insert into $tabela_botow (data, bot, ip, url) values('$dat', '$user_agent', '$remote_addr', '$indeksowany_adres')";

 $DB->query($sql_roboty);	

}

}





?>



5. OK, i to wszystko.

Teraz umieszczamy te trzy pliki:

- conf.php

- roboty.php

- lap_roboty.php

w katalogu głównym strony. Najlepiej tam gdzie jest index.php, czyli główny i pierwszy plik strony.

W zależności od tego jak kto ma zbudowaną stronę, tam należy umieścic kawałek kodu php:




<? 



include("lap_roboty.php"); 



?>



Generalnie strony oparte o PHP powinno się tak budować (ja przynajmniej tak robie), że jest sobie jeden główny plik: index.php

i w zależności od tego co zostanie wybrane, includuje sie do niego inne pliki.

Jeśli jednak macie stytuację, gdzie jest sobie index.php z którego są linki do plików np: kontakt.php, linki.php, oferta.php itp. itd,

czyli ze jest taka sytuacja:

www.twojadomena.pl (domyslnie index.php)

i zniej sa linki, które powidują taką sytuację:

www.twojadomena.pl/kontakt.php

www.twojadomena.pl/linki.php

www.twojadomena.pl/oferta.php

itd. itp.

(tutaj jak widać te pliki są w tym samym miejscu co index.php)

i kod ma lapac boty które odwiedzają także te osobne strony (które sa osobnymi plikami),

należy w każdym z tych plików umieścic kod:




<? include("lap_roboty.php"); ?>



Jeśli zajdzie taka sytuacja, że pliki do osobnych stron, są w katalogach, czyli np:

www.twojadomena.pl/inne/kontakt.php

www.twojadomena.pl/inne/linki.php

www.twojadomena.pl/produkty/oferta.php

to w tych osobnych plikach należy użyć tego kodu:

(jeśli natomiast użycie czegoś takiego nie wchodzi w gre - wyżej radziłem usuwac ten wpis - to należy podać recznie ścieżki do plikow tego skryptu)




<? 

ini_set ("include_path", ini_get ("include_path") . ':../:../../:../../../:../../../../:../../../../../');

include_once("lap_roboty.php");

?>



6. Uzycie skryptu: www.twojastronka.pl/roboty.php

KILKA UWAG:

- robione na szybko - byc moze cos jeszcze byc nie tak, ale to jak cos to pomoge

- wszelkie kolejne pytania - na tym forum.

##############################################################

Taka mała, wielka prośba - ci co używaja ten kod i im się podoba lub też nie - niech dadzą mi znać że go używaja, na PW lub na gg: 1037242

Chodzi o to, bym miał motywację do pisania kolejnych kodów i udostępniania na forum. Bo np kod: www.kmd07.pl/referer.php udostępnię tylko ludziom, którzy się po niego zgłoszą na PW. Dlaczego? Bo chcę wiedzieć ile osób tego używa.

Dlaczego tak? Bo dowiaduje się, nowi ludzie piszą, że mają problem z kodem, czyli jest zainteresowanie. Jednak jako autor chciałbym wiedzieć jak duże jest tym zainteresowanie.

No to tyle, dzięki z uwagę.

#############################################################

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 129
  • Dodano
  • Ostatniej odpowiedzi

Fajnie, że udostępniłeś. Dzięki. Przed chwilą widziałem linka do Twojego roboty.php w innym wątku i mi się spodobało.

pzdr.

omnia mea mecum porto

In general, it could be argued from the consumer point of view that the better the search engine is, the fewer advertisements will be needed for the consumer to find what they want.
Odnośnik do komentarza
Udostępnij na innych stronach

ale tak jak kiedys wrzucilem wczesniejsza wersje tego kodu... tak i teraz napisze

KOD JEST NAPISANY TYLKO NA MOJE POTRZEBY

Przyjme ewentualne sugestie co by dodac, o ile taka potrzeba bedzie - bo jest wszytko chyba co powinno byc.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Witam

mam pytanie czy w pliku lap_roboty.php trzeba zmieniać nazwy

$remote_addr = $_SERVER["REMOTE_ADDR"]; 

        $indeksowany_adres = $_SERVER["HTTP_HOST"]; 

        $indeksowany_adres .= $_SERVER["REQUEST_URI"]; 

         

        if(strpos($indeksowany_adres, "PHPSESSID") === false) 

        { 

           $sql_roboty = "insert into roboty (data, bot, ip, url) values('$dat', '$user_agent', '$remote_addr', '$indeksowany_adres')"; 

           $DB->query($sql_roboty);   

rozchodzi mi sie o indexsowany_adres co powinienem tu wstawić ?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

//aby dzialalo, nalezy w pliku php, tym wlasciwym przypisac wartosci ponizszym zmiennym globalnym,np:

global $db_host, $db_user, $db_passwd, $db_name;

$this->blad = $err;

$this->hostname = $db_host;

$this->username = $db_user;

$this->password = $db_passwd;

$this->dbname = $db_name;

$this->connect();

}

Moglby mi ktos wytlumaczyc o co chodzi w tej części. Z gory dziekuje.

Mam jeszcze jedno pytanie.

Jamesicko czy ty ten kod <? include("lap_roboty.php"); ?> umiesciles na wszystkich swoich podstronach?

Jezeli chce sprawdzac roboty na calej witrynie to musze umiesic go na kazdej stronie tak?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności