acaz โพสต์ 2008-9-4 13:01:00

แสดง Bot ใน online list

Author & special thank: ntf

แสดงไอพีบอทของเสริชต่างๆเป็นชื่อบอทนั้นครับ
มี
Google Bot
Yahoo Bot
WindowLive Bot
Baidu Spider



1. เปิดไฟลล์ include/global.func.php
ค้นหา
if(!defined('IN_DISCUZ')) {
      exit('Access Denied');
}


วางโค๊ดนี้ไว้บรรทัดต่อไป


//Bot Authentication By IP Start By ntf
function ip2bot($IP2BOT_IP){
      $IP2BOT_IPX=explode(".",$IP2BOT_IP,4);
if(($IP2BOT_IPX['0']=='66' && $IP2BOT_IPX['1']=='249') && ($IP2BOT_IPX['2']>=64 && $IP2BOT_IPX['2']<=95)){ //Google 66.249.64.0 - 66.249.95.255
$IP2BOT_NAME='GoogleBot';
}elseif(($IP2BOT_IPX['0']=='74' && $IP2BOT_IPX['1']=='6') or ($IP2BOT_IPX['0']=='72' && $IP2BOT_IPX['1']=='30')){//yahoo 74.6.0.0 - 74.6.255.255 ,72.30.0.0 - 72.30.255.255
$IP2BOT_NAME='YahooBot';
}elseif(($IP2BOT_IPX['0']=='65' && $IP2BOT_IPX['1']=='52') or ($IP2BOT_IPX['0']=='65' && $IP2BOT_IPX['1']=='55')){//Window Live 65.52.0.0 - 65.55.255.255
$IP2BOT_NAME='WindowLiveBot';
}elseif(($IP2BOT_IPX['0']=='202' && $IP2BOT_IPX['1']=='108' && $IP2BOT_IPX['2']=='1') or ($IP2BOT_IPX['0']=='202' && $IP2BOT_IPX['1']=='96' && $IP2BOT_IPX['2']=='63')){ //baidu 202.108.1.* - 202.96.63.*
$IP2BOT_NAME='Baidu Spider';
}else{
return false;
}

return $IP2BOT_NAME;
}
//Bot Authentication By IP End By ntf
2. เปิดไฟลล์ member.php
ค้นหา
      while($online = $db->fetch_array($query)) {
                $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + $timeoffset * 3600);
                $online['action'] = $actioncode[$online['action']];
                $online['subject'] = $online['subject'] ? cutstr($online['subject'], 35) : NULL;
                $online['ip'] = $online['ip1'].'.'.$online['ip2'].'.'.$online['ip3'].'.'.$online['ip4'];
วางโค๊ดนี้ไว้บรรทัดต่อไป
if(!$online['username']) $online['username']=ip2bot($online['ip']);
3. เปิดไฟลล์ index.php
ค้นหา
$query = $db->query("SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM {$tablepre}sessions ".(isset($_DCACHE['onlinelist']) ? '' : 'WHERE uid <> 0')." ORDER BY uid DESC LIMIT ".$maxonlinelist);
เปลี่ยนเป็น
$query = $db->query("SELECT ip1,ip2,ip3,ip4,uid, username, groupid, invisible, action, lastactivity, fid FROM {$tablepre}sessions ".(isset($_DCACHE['onlinelist']) ? '' : 'WHERE uid <> 0')." ORDER BY uid DESC LIMIT ".$maxonlinelist);
ค้นหา
$online['username'] = $_DCACHE['onlinelist']['guest'];
วางโค๊ดนี้ไว้บรรทัดต่อไป
$online['ip'] = $online['ip1'].'.'.$online['ip2'].'.'.$online['ip3'].'.'.$online['ip4'];                              
$online['username']=(!ip2bot($online['ip']))?$_DCACHE['onlinelist']['guest']:ip2bot($online['ip']);
4. เปิดไฟลล์ /default/whosonline.htm
ค้นหา(มี 2 ที่)
<!--{if $online['uid']}--><a href="space.php?uid=$online">$online</a><!--{else}-->{lang guest}<!--{/if}-->
เปลี่ยนเป็น
<!--{if $online['uid']}--><a href="space.php?uid=$online">$online</a><!--{else}-->
                              <!--{if ($online['username'] && $online['uid']==0)}-->$online<!--{else}-->{lang guest}<!--{/if}-->
                              <!--{/if}-->
5. อัพเดทแคช Admincp > เครื่องมือ > อัพเดทแคชไฟลล์

suthida โพสต์ 2008-9-4 14:28:59

ตอบกลับโพสของ หนึ่ง acaz

ว้าวเยี่ยมๆ ขอบคุณค่ะ :handshake

NonGyEn โพสต์ 2008-9-4 16:17:49

ขอบคุณครับ ใช้ได้ผลดีเยี่ยม:)

yamato669 โพสต์ 2008-9-4 16:43:55

ของพระคุงมากค๊าบ :victory:

buachompoox โพสต์ 2008-9-10 09:57:53

ตอบกลับโพสของ หนึ่ง acaz

ขอบคุณครับแหะๆเอาไปใช้มั้ง ~~

baschrub โพสต์ 2008-9-11 08:29:49

สุดยอดมากครับ อยากรู้มานานแล้ววว

kiross โพสต์ 2008-9-14 10:29:29

ขอบคุณมากค่ะ เดี๋ยวจะนำไปลองดูมั่ง :victory:

trafalgar โพสต์ 2011-1-8 18:21:32

ตอบกระทู้ acaz ตั้งกระทู้

ใช้กับ X1.5 ได้มั้ยครับ
หน้า: [1]
ดูในรูปแบบกติ: แสดง Bot ใน online list