Avatar billede theranger Nybegynder
17. februar 2003 - 20:42 Der er 5 kommentarer og
1 løsning

Kende robotter

Er det muligt at finde ud af om en session er en robot?

Pt. gør jeg følgende, hvilket ikke er særligt smart - er der nogen smartere løsning:

      Select Case Request.ServerVariables("http_user_agent")
        Case "Mozilla/4.0 (compatible; grub-client-1.0.7; Crawl your own stuff with http://grub.org)"
            Var_Robot = "Y"
        Case "ia_archiver"
            Var_Robot = "Y"
        Case "Nutch"
            Var_Robot = "Y"
        Case "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)"
            Var_Robot = "Y"
        Case "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"
            Var_Robot = "Y"
        Case "Mozilla/4.0 (compatible; grub-client-1.0.6; Crawl your own stuff with http://grub.org)"
            Var_Robot = "Y"
        Case "Mozilla/5.0 (X11; Linux i686; en-US; rv:1.0rc5; OBJR)"
            Var_Robot = "Y"
        Case "EricssonR320/R1A UP.Link/4.1.0.1 (Fast Mobile Crawler)"
            Var_Robot = "Y"
        Case "FAST-WebCrawler/3.6 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)"
            Var_Robot = "Y"
        Case "FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)"
            Var_Robot = "Y"
        Case "http://www.almaden.ibm.com/cs/crawler  [c01]"
            Var_Robot = "Y"
        Case "Scooter/3.2.SF0"
            Var_Robot = "Y"
        Case "Mercator-2.0"
            Var_Robot = "Y"
        Case "Mozilla/3.0 (compatible; Indy Library)"
            Var_Robot = "Y"
        Case "Mozilla/2.0 (Win16; I)"
            Var_Robot = "Y"
        Case "Mozilla/3.0 (compatible)"
            Var_Robot = "Y"
        Case "Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)"
            Var_Robot = "Y"
        Case "FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)"
            Var_Robot = "Y"
        Case "TurnitinBot/1.5 http://www.turnitin.com/robot/crawlerinfo.html"
            Var_Robot = "Y"
        Case "Opera/4.0 (Windows NT 4.0;US)"
            Var_Robot = "Y"
        Case "NPBot-1/2.0 (http://www.nameprotect.com/botinfo.html)"
            Var_Robot = "Y"
        Case "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Microsoft Scheduled Cache Content Download Service"
            Var_Robot = "Y"
        Case "Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)"
            Var_Robot = "Y"
        Case "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Fetch API Request"
            Var_Robot = "Y"
        Case "Oracle Ultra Search"
            Var_Robot = "Y"
        End Select
Avatar billede Slettet bruger
17. februar 2003 - 21:03 #1
Jeg tror du kan finde svaret i denne artikel:
http://www.webmasterbase.com/article/962

Det er under alle omstændigheder en knaldgod artikel.
Avatar billede theranger Nybegynder
17. februar 2003 - 21:10 #2
Nej - den er ikke meget bedre end det jeg selv har lavet - øv :-(
Avatar billede Slettet bruger
17. februar 2003 - 21:11 #3
Læste du nederst?

<%  Sub AddViolation(objDict, strWord)    'Adds a violation (a robot in this case)    objDict.Add strWord, False  End Sub  Function CheckStringForViolations(strString, objDict)    'Determines if the string strString has any violations    Dim bolViolations    bolViolations = False    Dim strKey    For Each strKey in objDict      If InStr(1, strString, strKey, vbTextCompare) > 0        bolViolations = True        objDict(strKey) = True      End If    Next  CheckStringForViolations = bolViolations  End Function  Dim objDictViolations  Set objDictViolations = Server.CreateObject("Scripting.Dictionary")  AddViolation objDictViolations, "Googlebot"  AddViolation objDictViolations, "Lycos"  AddViolation objDictViolations, "Ultraseek"  AddViolation objDictViolations, "Sidewinder"  AddViolation objDictViolations, "InfoSeek"  AddViolation objDictViolations, "Scooter"  AddViolation objDictViolations, "WebCrawler"  AddViolation objDictViolations, "UTV"  Dim strCheck, strKey  strCheck = Request.ServerVariables("HTTP_USER_AGENT")  If Len(strCheck) > 0 then    If CheckStringForViolations(strCheck, objDictViolations) then  Response.Redirect("spiderrichpage.asp")    ElseResponse.Redirect("userpage.asp")    End If  End If%>
Avatar billede Slettet bruger
17. februar 2003 - 21:12 #4
Prøv at læse artiklen grundigt igennem ;)
Avatar billede theranger Nybegynder
17. februar 2003 - 21:14 #5
Jeg er ude efter en type, der kan fange ALLE robotter - ikke bare de fleste.
Avatar billede Slettet bruger
17. februar 2003 - 21:16 #6
Well som det også står i artiklen, kan robottet maskere sig, ved at benytte en fake http_user_agent, så derfor er ovenstående script nok det smarteste, da det søger efter enkelte ord eller tegn i http_user_agent strengen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester