Napisany przez: mkoszar 17.01.2021, 09:39:04
Sprawa dość ciekawa. Na stronie index i podstronach umieściłem kawałek takiego kodu:
$ip = $_SERVER["REMOTE_ADDR"];
$zapytanie = "INSERT INTO `licznik` (`id`, `ip`, `data`, `strona`) VALUES (NULL, '$ip', NOW(), 'index')";
mysqli_query($db, $zapytanie);
Rejestruję tym samym zdarzenie otwarcia/pobrania danej strony/podstrony.
Wszystko fajnie, ale w liście dostaje zdarzenia z IP pochodzące od Googolebot, OVH, SAS, ColoCrossing-USA, Amazon itp. Takie dane są nie istotne.
Wymyśliłem, że zrobię tablicę, bo cześć tych IP się cyklicznie powtarza a jak dojdą nowe to się douzupełni tablicę i jako tako będzie
$lista_ip=http://www.php.net/array("54.36.149.96"=>"OVH SAS-FRANCJA","66.249.79.110"=>"Googlebot-USA","66.249.79.106"=>"Googlebot-USA","107.172.228.78"=>"ColoCrossing-USA");
I teraz w liście którą pobieram z bazy
while ($row_ip = mysqli_fetch_row($result_ip)) {
/* row_ip[1] = IP*/
/* row_ip[2] = data*/
/* row_ip[3] = strona*/}
chciałbym sprawdzić czy zmienna np. $ip_z_bazy = $row[1];
znajduje się w tablicy $lista_ip=array(...);
a jeśli tak to zapisz jako np. 66.249.79.110_Googlebot-USA
no a jak nie występuje to po prostu 52.161.150.183 i tyle...
tym samym po jakimś czasie wyfiltruje te wejścia, które nie będę brał pod uwagę jako informacja o wejściach przez żywych ludzi
Jest taka funkcja
array_values() returns all the values from the array and indexes the array numerically.
tylko że ona mi znowu poda tablicę ze wszystkimi wartościami kluczy - chyba nie przydatne
in_array($row_ip[1],$lista_ip,) Returns true if needle is found in the array, false otherwise.
też nie specjalnie, bo uzyskam jedynie info, że tak występuje w tablicy albo nie.
Może jest jakiś inny sposób ?
Napisany przez: trueblue 17.01.2021, 09:52:48
Chcesz przy wyświetlaniu danego IP doklejać informację?
http://www.php.net/echo $row_ip[1];
if(http://www.php.net/isset($lista_ip[$row_ip[1]]){
http://www.php.net/echo $lista_ip[$row_ip[1]];
}
Napisany przez: LowiczakPL 17.01.2021, 10:05:32
Takich IP będą TYSIĄCE, które kilka razy dziennie trzeba będzie dodawać do wykluczenia. IP to ostateczność.
Jeśli chcesz się pozbyć robotów to identyfikuj je po imieniu. Zazwyczaj roboty się przedstawiają, jednak korzystają z SETEK adresów IP, zamęczysz się na śmierć po IP.
Przeglądarka też się przedstawia, można tez po przeglądarce logować odwiedziny.
Napisany przez: mkoszar 17.01.2021, 10:06:06
Cytat(trueblue @ 17.01.2021, 09:52:48 )
Chcesz przy wyświetlaniu danego IP doklejać informację?
http://www.php.net/echo $row_ip[1];
if(http://www.php.net/isset($lista_ip[$row_ip[1]]){
http://www.php.net/echo $lista_ip[$row_ip[1]];
}
DOKŁADNIE TAK
!
po modyfikacji, ale to to samo w zasadzie
if(http://www.php.net/isset($lista_ip[$row_ip[1]])){
$xxx = $lista_ip[$row_ip[1]];
} else {$xxx = '';}
Napisany przez: dublinka 17.01.2021, 10:12:18
Troche zle do tego podeszles. Sprawdzaj
$_SERVER ['HTTP_USER_AGENT'];
Jest lista robotow. Porownaj liste z tym co poboerasz i wtedy zapisuj do bazy.
Napisany przez: mkoszar 17.01.2021, 10:20:09
Cytat(dublinka @ 17.01.2021, 10:12:18 )
Troche zle do tego podeszles. Sprawdzaj
$_SERVER ['HTTP_USER_AGENT'];
Jest lista robotow. Porownaj liste z tym co poboerasz i wtedy zapisuj do bazy.
O ! sprawdzę to za moment.
Ale skąd się problem pojawił. Miałem na 000webhost darmowy serwer i już pierwszego dnia zablokowali z powodu tego że miałem 100 unikalnych wejść. i blokada.
Unikalnych .. mhm, chyba robotów . Ale regulamin to regulamin i zablokowali.
A jak już zbieram te dane to niech coś z tego też wiem. Zaraz obczaje co zwraca $_SERVER ['HTTP_USER_AGENT'];
Napisany przez: dublinka 17.01.2021, 10:22:56
Chocby stad przyklady
https://stackoverflow.com/questions/422969/how-to-recognize-bots-with-php
Napisany przez: mkoszar 17.01.2021, 11:08:18
a tak z innej beczki: To chyba dobrze, że te Googleboty i inne odwiedzają stronę. Przy okazji indeksują zawartość. Pewnie z pozycjonowaniem to niema nic wspólnego w wyszukiwaniach, bo to inna bajka..
Tutaj chodzi o to, żeby "wyłuskać" unikalnych odwiedzających.
Wrzuciłem nową kolumnę do bazy i zobaczymy co się stanie. To już jest dużo informacji
Napisany przez: Pyton_000 17.01.2021, 19:02:59
https://github.com/JayBizzle/Crawler-Detect