سلام خسته نباشید میخوام وقتی کسی وارد سایتم میشه تو یه فایل ثبت کنم
1- از کدام لینک وارد سایت من شده
2- وارد کدام صفحه وب من شده
3- از کدام کشور وارد سایتم شده
4- با چه مرورگری سایتمو باز کرده؟
تابعی که اینارو برمیگردونه چی؟
مثلا این تابع آی پی فرد برمیگردونه
کد:
$_SERVER['REMOTE_ADDR'];
از کدام سایت : HTTP_REFERER
کداک صفحه: REQUEST_URI
از کدام کشور: (باید از سایتهای دیگه بپرسید و )
با چه مرورگری HTTP_USER_AGENT'
اینا همشون پارامترهای
هستند
ممنون
روشی برای تشخیص ای پی پیدا کردم ولی باید دیتابیس اپلود کنم همینطور وضع سایت خرابه !
ترجیع میدم با vb6 خودم برنامه شو بنویسم ! فقط میشه بگین فرمولش چی؟
منظورم همین رنج های ای پی هسته برای هر کشور از چند تا چند هسته
ضمنا" با چه مرورگری فکر نام مرور گر میخوام برگردونه ولی
HTTP_USER_AGENT
به این شکل برمیگردونه
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
خودم پیدا کردم عزیز
کد:
<?php
function getBrowser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$bname = 'Unknown';
$platform = 'Unknown';
$version= "";
//First get the platform?
if (preg_match('/linux/i', $u_agent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/i', $u_agent)) {
$platform = 'windows';
}
// Next get the name of the useragent yes seperately and for good reason
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
{
$bname = 'Internet Explorer';
$ub = "MSIE";
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$bname = 'Mozilla Firefox';
$ub = "Firefox";
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$bname = 'Google Chrome';
$ub = "Chrome";
}
elseif(preg_match('/Safari/i',$u_agent))
{
$bname = 'Apple Safari';
$ub = "Safari";
}
elseif(preg_match('/Opera/i',$u_agent))
{
$bname = 'Opera';
$ub = "Opera";
}
elseif(preg_match('/Netscape/i',$u_agent))
{
$bname = 'Netscape';
$ub = "Netscape";
}
// finally get the correct version number
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) .
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
if (!preg_match_all($pattern, $u_agent, $matches)) {
// we have no matching number just continue
}
// see how many we have
$i = count($matches['browser']);
if ($i != 1) {
//we will have two since we are not using 'other' argument yet
//see if version is before or after the name
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
$version= $matches['version'][0];
}
else {
$version= $matches['version'][1];
}
}
else {
$version= $matches['version'][0];
}
// check if we have a number
if ($version==null || $version=="") {$version="?";}
return array(
'userAgent' => $u_agent,
'name' => $bname,
'version' => $version,
'platform' => $platform,
'pattern' => $pattern
);
}
// now try it
$ua=getBrowser();
$yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];
print_r($yourbrowser);
?>
ولی این بیشتر اوقات کار نمیکنه
از کدام سایت : HTTP_REFERER
تمام این پارامترها بجز آیپی قابل دستکاریه و کاملا میشه دورشو زد و مقادیر دلخواه داد و . . .
رباتها هم معمولا درخواستهاشون رو شبیه مرورگرها درست میکنند تا سایتها و ادمینها متوجه نشن؛
این چیز ها اصلا ملاک خوبی نیست برا تشخیص ربات؛
(۳۱-تير-۱۳۹۲, ۰۳:۱۲:۵۴)babyy نوشته است: [ -> ]تمام این پارامترها بجز آیپی قابل دستکاریه و کاملا میشه دورشو زد و مقادیر دلخواه داد و . . .
رباتها هم معمولا درخواستهاشون رو شبیه مرورگرها درست میکنند تا سایتها و ادمینها متوجه نشن؛
این چیز ها اصلا ملاک خوبی نیست برا تشخیص ربات؛
چرا بیشتر اوقات HTTP_REFERER چیزی رو برنمیگردونه؟
خب به نظرت چطور ربات بشنام از این طریق شاید ربات ناواردی باشه که ای پیش تکراری باشه
ربات تکراری دیگه ربات نیست که
شما برای چی نیاز به تشخیص ربات و کاربر و... دارید؟