Besucher

BESUCHER (RPGLE)



  X * SIMPLEPIE BEGSR BESUCHER 40  
  X * FACEBOOK BEGSR BESUCHER 15  
  X * BAIDUSPIDER BEGSR BESUCHER 14  
  X * SCAN$ BEGSR BESUCHER 89  
  X * PERCENT BEGSR BESUCHER 13  
  X * BYE BEGSR BESUCHER 15  
  X * COCRAWLER BEGSR BESUCHER 15  
  X * TROUBLE BEGSR BESUCHER 15  
  X * TUNIONSDK BEGSR BESUCHER 15  
  X * *PSSR BEGSR BESUCHER 6  
  X  
  X * *ENTRY PLIST BESUCHER 7  
  X  
H  
H *COPYRIGHT JÜRGEN REULE 2018-2024
H  
H DATFMT(*ISO) TIMFMT(*ISO)
H DFTACTGRP(*NO) ACTGRP(*CALLER)
H COPYRIGHT('COPYRIGHT JÜRGEN REULE 2018-2024')
H  
D POS     S   10 I 0    
D POS2     S           INZ LIKE(POS)
D POS3     S           INZ LIKE(POS)
D POS4     S           INZ LIKE(POS)
D                    
D LEN     S               LIKE(POS)
D LEN2     S           INZ LIKE(POS)
D                    
D OTHER     S           INZ LIKE(POS)
D CHROME     S           INZ LIKE(POS)
D SAFARI     S           INZ LIKE(POS)
D FIREFOX     S           INZ LIKE(POS)
D                    
D CHARS     DS            
D CHARS1         1 A     INZ OVERLAY(CHARS)
D CHARS2         2 A     INZ OVERLAY(CHARS)
D CHARS3         3 A     INZ OVERLAY(CHARS)
D CHARS4         4 A     INZ OVERLAY(CHARS)
D CHARS5         5 A     INZ OVERLAY(CHARS)
D CHARS6         6 A     INZ OVERLAY(CHARS)
D CHARS7         7 A     INZ OVERLAY(CHARS)
D CHARS8         8 A     INZ OVERLAY(CHARS)
D CHARS9         9 A     INZ OVERLAY(CHARS)
D CHARS10         10 A     INZ OVERLAY(CHARS)
D CHARS11         11 A     INZ OVERLAY(CHARS)
D CHARS12         12 A     INZ OVERLAY(CHARS)
D                    
D CHAR     S   1 A     INZ
D CHARX     S   1 A     INZ
D CHARXX     S   1 A     INZ
D CHARXXX     S   1 A     INZ
D                    
D ROBOT     S   1 A      
D TEXTBROWSER     S   1 N      
D                    
D AGENT     S   32767 A     VARYING
D AGENTLEN     S   10 I 0   INZ
D AGENTLEN2X     S   10 I 0   INZ
D                    
D BESUCHER     S   500 A     VARYING
D BESUCHER2     S           INZ LIKE(BESUCHER)
D                    
D SCAN1     C           CONST(';')
D SCAN1X     C           CONST(';​')
D SCAN2     C           CONST('|')
D SCAN2X     C           CONST('|​')
D SCAN3     C           CONST('{')
D SCAN3X     C           CONST('{​')
D SCAN4     C           CONST('}')
D SCAN4X     C           CONST('}​')
D SCAN5     C           CONST(')C')
D SCAN5X     C           CONST(')​C')
D SCAN6     C           CONST('6(')
D SCAN6X     C           CONST('6​(')
D SCAN7     C           CONST('0(M')
D SCAN7X     C           CONST('0​(M')
D SCAN8     C           CONST('2)A')
D SCAN8X     C           CONST('2)​A')
D SCAN9     C           CONST('6S')
D SCAN9X     C           CONST('6​S')
D SCANA     C           CONST('+a')
D SCANAX     C           CONST('+​a')
D SCANB     C           CONST('2a0')
D SCANBX     C           CONST('2​a0')
D SCANE     C           CONST('0257')
D SCANEX     C           CONST('0257​')
D SCANF     C           CONST('0943')
D SCANFX     C           CONST('0943​')
D SCANG     C           CONST('+G')
D SCANGX     C           CONST('+​G')
D SCANH     C           CONST('Helper/')
D SCANHX     C           CONST('Helper/​')
D SCANJ     C           CONST('J/')
D SCANJX     C           CONST('J​/')
D SCANM     C           CONST(';W')
D SCANMX     C           CONST(';​W')
D SCANP     C           CONST('print(')
D SCANPX     C           CONST('print(​')
D SCANQ     C           CONST('1080(')
D SCANQX     C           CONST('1080​(')
D SCANR     C           CONST(',c')
D SCANRX     C           CONST(',​c')
D SCANT     C           CONST('_')
D SCANTX     C           CONST('​_')
D SCANW     C           CONST('+W')
D SCANWX     C           CONST('+​W')
D SCANY     C           CONST('BYE')
D SCANYX     C           CONST('BY​E')
D SCANZ     C           CONST('+g')
D SCANZX     C           CONST('+​g')
D SCAN#     C           CONST('%')
D SCAN#X     C           CONST('​%')
D                    
D SCANLEN1     C           CONST(%SIZE(SCAN1))
D SCANLEN1X     C           CONST(%SIZE(SCAN1X))
D SCANLEN2     C           CONST(%SIZE(SCAN2))
D SCANLEN2X     C           CONST(%SIZE(SCAN2X))
D SCANLEN3     C           CONST(%SIZE(SCAN3))
D SCANLEN3X     C           CONST(%SIZE(SCAN3X))
D SCANLEN4     C           CONST(%SIZE(SCAN4))
D SCANLEN4X     C           CONST(%SIZE(SCAN4X))
D SCANLEN5     C           CONST(%SIZE(SCAN5))
D SCANLEN5X     C           CONST(%SIZE(SCAN5X))
D SCANLEN6     C           CONST(%SIZE(SCAN6))
D SCANLEN6X     C           CONST(%SIZE(SCAN6X))
D SCANLEN7     C           CONST(%SIZE(SCAN7))
D SCANLEN7X     C           CONST(%SIZE(SCAN7X))
D SCANLEN8     C           CONST(%SIZE(SCAN8))
D SCANLEN8X     C           CONST(%SIZE(SCAN8X))
D SCANLEN9     C           CONST(%SIZE(SCAN9))
D SCANLEN9X     C           CONST(%SIZE(SCAN9X))
D SCANLENA     C           CONST(%SIZE(SCANA))
D SCANLENAX     C           CONST(%SIZE(SCANAX))
D SCANLENB     C           CONST(%SIZE(SCANB))
D SCANLENBX     C           CONST(%SIZE(SCANBX))
D SCANLENE     C           CONST(%SIZE(SCANE))
D SCANLENEX     C           CONST(%SIZE(SCANEX))
D SCANLENF     C           CONST(%SIZE(SCANF))
D SCANLENFX     C           CONST(%SIZE(SCANFX))
D SCANLENG     C           CONST(%SIZE(SCANG))
D SCANLENGX     C           CONST(%SIZE(SCANGX))
D SCANLENH     C           CONST(%SIZE(SCANH))
D SCANLENHX     C           CONST(%SIZE(SCANHX))
D SCANLENJ     C           CONST(%SIZE(SCANJ))
D SCANLENJX     C           CONST(%SIZE(SCANJX))
D SCANLENM     C           CONST(%SIZE(SCANM))
D SCANLENMX     C           CONST(%SIZE(SCANMX))
D SCANLENP     C           CONST(%SIZE(SCANP))
D SCANLENPX     C           CONST(%SIZE(SCANPX))
D SCANLENQ     C           CONST(%SIZE(SCANQ))
D SCANLENQX     C           CONST(%SIZE(SCANQX))
D SCANLENR     C           CONST(%SIZE(SCANR))
D SCANLENRX     C           CONST(%SIZE(SCANRX))
D SCANLENT     C           CONST(%SIZE(SCANT))
D SCANLENTX     C           CONST(%SIZE(SCANTX))
D SCANLENW     C           CONST(%SIZE(SCANW))
D SCANLENWX     C           CONST(%SIZE(SCANWX))
D SCANLENY     C           CONST(%SIZE(SCANY))
D SCANLENYX     C           CONST(%SIZE(SCANYX))
D SCANLENZ     C           CONST(%SIZE(SCANZ))
D SCANLENZX     C           CONST(%SIZE(SCANZX))
D SCANLEN#     C           CONST(%SIZE(SCAN#))
D SCANLEN#X     C           CONST(%SIZE(SCAN#X))
D                    
C          
C       CLEAR   POS            
C       CLEAR   POS2            
C       CLEAR   ROBOT            
C       CLEAR   CHAR            
C       CLEAR   CHARX            
C       CLEAR   CHARXX            
C       CLEAR   CHARXXX            
C       CLEAR   BESUCHER            
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *BLANKS IFNE AGENT              
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       EXSR SCAN$              
C       EXSR PERCENT              
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       EXSR BYE              
C       EXSR COCRAWLER              
C       EXSR TROUBLE              
C       EXSR TUNIONSDK              
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *BLANKS IFNE AGENT              
C       EVAL AGENTLEN   = %LEN(AGENT)
C     AGENTLEN ADD 1 AGENTLEN2X            
C     *ZERO ADD 1 POS            
C          
C *     --------------------------------------
C *     W3C/GoogleMobile/...
C *     --------------------------------------
C     'W3C' SCAN AGENT:POS POS2     77 78  
C   N78 'APIs-' SCAN AGENT:POS POS2     77 78  
C ** N78 'Nutch' SCAN AGENT:POS POS2     77 78  
C   N78 'Zombie' SCAN AGENT:POS POS2     77 78  
C   N78 'AdsBot-' SCAN AGENT:POS POS2     77 78  
C   N78 'Expanse' SCAN AGENT:POS POS2     77 78  
C   N78 'Jasmine' SCAN AGENT:POS POS2     77 78  
C   N78 'NetFront' SCAN AGENT:POS POS2     77 78  
C   N78 'GTmetrix' SCAN AGENT:POS POS2     77 78  
C   N78 '360Spider' SCAN AGENT:POS POS2     77 78  
C   N78 'UCBrowser' SCAN AGENT:POS POS2     77 78  
C   N78 'searchlite' SCAN AGENT:POS POS2     77 78  
C   N78 'NetSystems' SCAN AGENT:POS POS2     77 78  
C   N78 'Networking' SCAN AGENT:POS POS2     77 78  
C   N78 'GoogleMobile' SCAN AGENT:POS POS2     77 78  
C   N78 'SearchHelper' SCAN AGENT:POS POS2     77 78  
C   N78 'SEMC-Browser' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     W3C/GoogleMobile/...
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ' ' CHARX            
C       MOVEL(P) ' ' CHARXX            
C       MOVEL(P) ' ' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     Applebot/...
C *     --------------------------------------
C     'Opera ' SCAN AGENT:POS POS2     77 78  
C   N78 'Opera' SCAN AGENT:POS POS2     77 78  
C   N78 'Sprint' SCAN AGENT:POS POS2     77 78  
C   N78 'print' SCAN AGENT:POS POS2     77 78  
C   N78 'Valve' SCAN AGENT:POS POS2     77 78  
C   N78 'Skype' SCAN AGENT:POS POS2     77 78  
C   N78 'Exabot' SCAN AGENT:POS POS2     77 78  
C   N78 'OnPage' SCAN AGENT:POS POS2     77 78  
C   N78 'Google ' SCAN AGENT:POS POS2     77 78  
C   N78 'Google-' SCAN AGENT:POS POS2     77 78  
C   N78 'Applebot' SCAN AGENT:POS POS2     77 78  
C   N78 'Datanyze' SCAN AGENT:POS POS2     77 78  
C   N78 'PaleMoon' SCAN AGENT:POS POS2     77 78  
C   N78 'Amazonbot' SCAN AGENT:POS POS2     77 78  
C   N78 'IndeedBot' SCAN AGENT:POS POS2     77 78  
C   N78 'WhatsMyIP' SCAN AGENT:POS POS2     77 78  
C   N78 'AppEngine-' SCAN AGENT:POS POS2     77 78  
C   N78 'trendiction' SCAN AGENT:POS POS2     77 78  
C   N78 'PlayStation' SCAN AGENT:POS POS2     77 78  
C   N78 'BingPreview' SCAN AGENT:POS POS2     77 78  
C   N78 'GoogleImage' SCAN AGENT:POS POS2     77 78  
C   N78 'PLAYSTATION' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     Applebot/...
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ';' CHARX            
C       MOVEL(P) '+' CHARXX            
C       MOVEL(P) ')' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     compatible
C *     --------------------------------------
C     'compatible' SCAN AGENT:POS POS2     77 78  
C     *IN78 IFEQ *ON              
C       ADD 10 POS2            
C       SUBST(P) AGENT:POS2 CHARX     77  
C   77   MOVEL(P) ';' CHARX            
C       ADD 1 POS2            
C     '+ ' CHECK AGENT:POS2 POS2     77 78  
C       ENDIF                
C *     --------------------------------------
C *     compatible
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     'IEMobile' SCAN AGENT:POS2 POS3     77 78  
C   N78 'Claritybot' SCAN AGENT:POS2 POS3     77 78  
C   N78 'KomodiaBot' SCAN AGENT:POS2 POS3     77 78  
C   N78 'Streamline3' SCAN AGENT:POS2 POS3     77 78  
C   N78 'Mail.RU_Bot' SCAN AGENT:POS2 POS3     77 78  
C   N78 'BacklinkHttp' SCAN AGENT:POS2 POS3     77 78  
C   78 *ZERO ADD POS3 POS2            
C     *ZERO ADD POS2 POS            
C       MOVEL(P) '+' CHARXX            
C       MOVEL(P) ')' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     IEMobile
C *     --------------------------------------
C     'IEMobile' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     IEMobile
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ';' CHARX            
C       MOVEL(P) '+' CHARXX            
C       MOVEL(P) ')' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     Mozilla ... Gecko
C *     --------------------------------------
C     'Mozilla' SCAN AGENT:POS POS3     77 78  
C   78 'Gecko' SCAN AGENT:POS3 POS2     77 78  
C     *IN78 IFEQ *ON              
C     '(' SCAN AGENT:POS POS4     77 79  
C   79 POS3 COMP POS4       78 78  
C       ENDIF                
C *     --------------------------------------
C *     Mozilla ... Gecko
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       CLEAR   CHARX            
C       CLEAR   OTHER            
C       CLEAR   CHROME            
C       CLEAR   SAFARI            
C       CLEAR   FIREFOX            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *ZERO ADD POS2 POS            
C     ' ' SCAN AGENT:POS POS2     77 78  
C   N78 '+' SCAN AGENT:POS POS2     77 78  
C   78   SUBST(P) AGENT:POS2 CHARX     77  
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *IN78 DOWEQ *ON              
C       ADD 1 POS2            
C       SUBST(P) AGENT:POS2 CHARS     77  
C   77   CLEAR   CHARS            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       SELECT    
C     'Firefox' WHENEQ CHARS7              
C     *ZERO ADD POS2 FIREFOX            
C     'Safari' WHENEQ CHARS6              
C     *ZERO ADD POS2 SAFARI            
C     'Chrome' WHENEQ CHARS6              
C     *ZERO ADD POS2 CHROME            
C     '<' WHENEQ CHARS1              
C     '>' SCAN AGENT:POS2 POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C     '{' WHENEQ CHARS1              
C     '}' SCAN AGENT:POS2 POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C     '[' WHENEQ CHARS1              
C     ']' SCAN AGENT:POS2 POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C     '(' WHENEQ CHARS1              
C     ')' SCAN AGENT:POS2 POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C     '0' WHENLE CHARS1              
C     '9' ANDGE CHARS1              
C     ' ' WHENNE CHARS1              
C     '?' ANDNE CHARS1              
C     '+' ANDNE CHARS1              
C     '-' ANDNE CHARS1              
C     '*' ANDNE CHARS1              
C     '/' ANDNE CHARS1              
C     'at' ANDNE CHARS2              
C     'by' ANDNE CHARS2              
C     'U2' ANDNE CHARS2              
C     'U3' ANDNE CHARS2              
C     'MG' ANDNE CHARS2              
C     'SA' ANDNE CHARS2              
C     'Pre' ANDNE CHARS3              
C     'TBS' ANDNE CHARS3              
C     'GTB' ANDNE CHARS3              
C     'BOT' ANDNE CHARS3              
C     'SOC' ANDNE CHARS3              
C     'like' ANDNE CHARS4              
C     'info' ANDNE CHARS4              
C     'Iron' ANDNE CHARS4              
C     'http' ANDNE CHARS4              
C     '3gpp' ANDNE CHARS4              
C     'web-' ANDNE CHARS4              
C     'AlMi' ANDNE CHARS4              
C     'SUSE' ANDNE CHARS4              
C     'OWAS' ANDNE CHARS4              
C     'Silk-' ANDNE CHARS5              
C     'print' ANDNE CHARS5              
C     'https' ANDNE CHARS5              
C     'durch' ANDNE CHARS5              
C     'Abels' ANDNE CHARS5              
C     'Gecko' ANDNE CHARS5              
C     'BroPP' ANDNE CHARS5              
C     'Mobile' ANDNE CHARS6              
C     'Debian' ANDNE CHARS6              
C     'Fedora' ANDNE CHARS6              
C     'Gentoo' ANDNE CHARS6              
C     'Yowser' ANDNE CHARS6              
C     'Ubuntu' ANDNE CHARS6              
C     'UP.Link' ANDNE CHARS7              
C     'Favicon' ANDNE CHARS7              
C     'Mozilla' ANDNE CHARS7              
C     'Version' ANDNE CHARS7              
C     'Contact' ANDNE CHARS7              
C     'NetType' ANDNE CHARS7              
C     'Browser-' ANDNE CHARS8              
C     'TouchPad' ANDNE CHARS8              
C     'Language' ANDNE CHARS8              
C     'MRCHROME' ANDNE CHARS8              
C     'anonymized' ANDNE CHARS10              
C     'Webcrawler' ANDNE CHARS10              
C     'WebCrawler' ANDNE CHARS10              
C     'AppleWebKit' ANDNE CHARS11              
C     'Anonymisiert' ANDNE CHARS12              
C     'AlexaToolbar' ANDNE CHARS12              
C     'MicroMesseng' ANDNE CHARS12              
C     *ZERO ADD POS2 OTHER            
C       ENDSL                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     CHARX SCAN AGENT:POS2 POS2     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       SELECT    
C     *ZERO WHENNE OTHER              
C     *ZERO ADD OTHER POS            
C     *ZERO WHENNE CHROME              
C     *ZERO ADD CHROME POS            
C     *ZERO WHENNE SAFARI              
C     *ZERO ADD SAFARI POS            
C     *ZERO WHENNE FIREFOX              
C     *ZERO ADD FIREFOX POS            
C       OTHER                
C     1 ADD AGENTLEN POS            
C       ENDSL                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       MOVEL(P) ' ' CHARX            
C       MOVEL(P) '(' CHARXX            
C       MOVEL(P) ')' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     UP.Browser
C *     --------------------------------------
C     'UP.Browser' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     UP.Browser
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ' ' CHARX            
C       MOVEL(P) ' ' CHARXX            
C       MOVEL(P) ' ' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     CMS Crawler
C *     --------------------------------------
C     'CMS Crawler' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     CMS Crawler
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ':' CHARX            
C       MOVEL(P) ' ' CHARXX            
C       MOVEL(P) ' ' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     KomodiaBot / Streamline3
C *     --------------------------------------
C     'KomodiaBot' SCAN AGENT:POS POS2     77 78  
C   N78 'Streamline3' SCAN AGENT:POS POS2     77 78  
C          
C *     --------------------------------------
C *     KomodiaBot / Streamline3
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     1 ADD POS2 POS4            
C     'KomodiaBot' SCAN AGENT:POS4 POS3     77 78  
C   N78 'Streamline3' SCAN AGENT:POS4 POS3     77 78  
C   78 *ZERO ADD POS3 POS2            
C     *ZERO ADD POS2 POS            
C       MOVEL(P) ' ' CHARX            
C       MOVEL(P) ' ' CHARXX            
C       MOVEL(P) ' ' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     SimplePie ... sanitize
C *     --------------------------------------
C     'SimplePie' SCAN AGENT:POS POS2     77 78  
C   78 'sanitize' SCAN AGENT:POS2 POS3     77 78  
C          
C *     --------------------------------------
C *     SimplePie ... sanitize
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C       EXSR SIMPLEPIE              
C     'SimplePie' SCAN AGENT:POS2 POS2     77 78  
C     *ZERO ADD POS2 POS            
C       MOVEL(P) '"' CHARX            
C       MOVEL(P) ';' CHARXX            
C       MOVEL(P) ' ' CHARXXX            
C       ELSE                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       MOVEL(P) '(' CHARX            
C       MOVEL(P) '(' CHARXX            
C       MOVEL(P) '(' CHARXXX            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       SUBST(P) AGENT:POS CHAR     77  
C     CHARXX COMP CHAR       78  
C   N78 CHARX SCAN AGENT:POS POS2     77 78  
C   N78 CHARXX SCAN AGENT:POS POS2     77 78  
C   N78 CHARXXX SCAN AGENT:POS POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     CHARX ANDEQ ' '              
C     CHARXX IFNE CHAR              
C     CHARXX OREQ CHARX              
C     1 ADD POS2 POS3            
C       SUBST(P) AGENT:POS3 CHARS     77  
C     *IN77 IFEQ *OFF              
C     '0' IFLE CHARS1              
C     '9' ANDGE CHARS1              
C     'BOT' OREQ CHARS3              
C     'Favicon' OREQ CHARS7              
C     CHARX SCAN AGENT:POS3 POS2     77 78  
C   N78 1 ADD AGENTLEN POS2            
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     ' -' SCAN AGENT:POS POS3     77 78  
C   N78 '\"' SCAN AGENT:POS POS3     77 78  
C   N78 '"' SCAN AGENT:POS POS3     77 78  
C   N78 ',' SCAN AGENT:POS POS3     77 78  
C   N78 'CFNetwork' SCAN AGENT:POS POS3     77 78  
C   N78 'Series60' SCAN AGENT:POS POS3     77 78  
C   N78 'Profile' SCAN AGENT:POS POS3     77 78  
C   N78 'CPython' SCAN AGENT:POS POS3     77 78  
C   N78 'UP.Link' SCAN AGENT:POS POS3     77 78  
C   N78 'https://' SCAN AGENT:POS POS3     77 78  
C   N78 'http://' SCAN AGENT:POS POS3     77 78  
C   N78 'http_' SCAN AGENT:POS POS3     77 78  
C   78 POS2 COMP POS3       78  
C   78 *ZERO ADD POS3 POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     '<' SCAN AGENT:POS POS3     77 78  
C   N78 '>' SCAN AGENT:POS POS3     77 78  
C   78 POS2 COMP POS3       78  
C   78 *ZERO ADD POS3 POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     '{' SCAN AGENT:POS POS3     77 78  
C   N78 '}' SCAN AGENT:POS POS3     77 78  
C   78 POS2 COMP POS3       78  
C   78 *ZERO ADD POS3 POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     '[' SCAN AGENT:POS POS3     77 78  
C   N78 ']' SCAN AGENT:POS POS3     77 78  
C   78 POS2 COMP POS3       78  
C   78 *ZERO ADD POS3 POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     '(' SCAN AGENT:POS POS3     77 78  
C   N78 ')' SCAN AGENT:POS POS3     77 78  
C   78 POS2 COMP POS3       78  
C   78 *ZERO ADD POS3 POS2            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     'libcurl' SCAN AGENT:POS POS3     77 78  
C   N78 'libwww' SCAN AGENT:POS POS3     77 78  
C   N78 'curl' SCAN AGENT:POS POS3     77 78  
C   N78 'Java' SCAN AGENT:POS POS3     77 78  
C   N78 'print' SCAN AGENT:POS POS3     77 78  
C   N78 'Safari' SCAN AGENT:POS POS3     77 78  
C   N78 'Mozilla' SCAN AGENT:POS POS3     77 78  
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     POS3 ANDGT POS              
C     POS3 ANDLT POS2              
C     POS3 ANDGT 1              
C       SUB 1 POS3            
C       SUBST(P) AGENT:POS3 CHAR     77  
C   N77 ' ' COMP CHAR       77 77  
C   N77 *ZERO ADD POS3 POS2            
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     'zgra' SCAN AGENT:POS POS3     77 78  
C   N78 'aiohttp' SCAN AGENT:POS POS3     77 78  
C   N78 'stagefright' SCAN AGENT:POS POS3     77 78  
C   78 *ZERO ADD POS3 POS            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     POS2 IFGT 1              
C       SUB 1 POS2     77 77  
C     ';_ ' CHECKR AGENT:POS2 POS2     77 78  
C       ADD 1 POS2     77 77  
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     ' ' CHECK AGENT:POS POS3     77 78  
C   78 *ZERO ADD POS3 POS            
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       EXSR FACEBOOK              
C       EXSR BAIDUSPIDER              
C          
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     POS IFGE 1              
C     POS ANDLE AGENTLEN              
C     POS2 ANDLE AGENTLEN2X              
C     POS2 ANDGT POS              
C     POS2 SUB POS LEN            
C       EVAL BESUCHER   = %SUBST(AGENT:POS:LEN)
C       EVAL BESUCHER2  =  BESUCHER
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C       SETOFF         78  
C       MOVEL(P) BESUCHER CHARS            
C          
C       SELECT    
C *     --------------------------------------
C *     MSIE / Mozilla
C *     --------------------------------------
C     *BLANKS WHENEQ CHARS              
C     'Trident' SCAN AGENT POS2     77 78  
C   78 'rv:' SCAN AGENT:POS2 POS2     77 78  
C   78   EVAL BESUCHER   = 'MSIE'
C     *IN78 IFEQ *OFF              
C     'Mozilla' SCAN AGENT POS2     77 78  
C   78 'rv:' SCAN AGENT:POS2 POS2     77 78  
C   78   EVAL BESUCHER   = 'Mozilla'
C       ENDIF                
C   78   ADD 3 POS2            
C   78 ')' SCAN AGENT:POS2 POS3     77 78  
C          
C *     --------------------------------------
C *     Navigator
C *     --------------------------------------
C     'Mozilla' WHENEQ CHARS7              
C     'Mozilla/' SCAN AGENT POS2     77 78  
C   78   ADD 8 POS2            
C     *IN78 IFEQ *ON              
C     'compatible' SCAN AGENT       77 78  
C     *IN78 COMP *OFF       78  
C   78 LEN ADD POS POS3            
C   78   EVAL BESUCHER   = 'Navigator'
C   N78   EVAL BESUCHER   = ''
C       ENDIF                
C       ENDSL                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     POS2 IFGE 1              
C     POS2 ANDLE AGENTLEN              
C     POS3 ANDLE AGENTLEN2X              
C     POS3 ANDGT POS2              
C     POS3 SUB POS2 LEN2            
C       EVAL BESUCHER   =
C       BESUCHER   + '/' +
C       %SUBST(AGENT:POS2:LEN2)
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Name des Besuchers ermitteln
C *     --------------------------------------
C     BESUCHER2 IFNE BESUCHER              
C       CLEAR   POS            
C       CLEAR   LEN            
C       ENDIF                
C *     --------------------------------------
C *     Bot/Crawler/Spider/...
C *     --------------------------------------
C     'bot' SCAN AGENT       77 78  
C   N78 'Bot' SCAN AGENT       77 78  
C   N78 'BOT' SCAN AGENT       77 78  
C   N78 'crawl' SCAN AGENT       77 78  
C   N78 'Crawl' SCAN AGENT       77 78  
C   N78 'CRAWL' SCAN AGENT       77 78  
C   N78 'spider' SCAN AGENT       77 78  
C   N78 'Spider' SCAN AGENT       77 78  
C   N78 'SPIDER' SCAN AGENT       77 78  
C   N78 'Daum' SCAN AGENT       77 78  
C   N78 'ltx71' SCAN AGENT       77 78  
C   N78 'Slurp' SCAN AGENT       77 78  
C   N78 'Qwant' SCAN AGENT       77 78  
C   N78 'BUbiNG' SCAN AGENT       77 78  
C   N78 'adscanner' SCAN AGENT       77 78  
C   N78 'Dataprovider' SCAN AGENT       77 78  
C          
C *     --------------------------------------
C *     Robots Tester/Checker
C *     --------------------------------------
C     *IN78 IFEQ *ON              
C     'Tester' SCAN AGENT       77 78  
C   N78 'Checker' SCAN AGENT       77 78  
C          
C     *IN78 IFEQ *ON              
C     'robots' SCAN AGENT       77 78  
C   N78 'Robots' SCAN AGENT       77 78  
C   N78 'ROBOTS' SCAN AGENT       77 78  
C       ENDIF                
C *     --------------------------------------
C *     Feedback
C *     --------------------------------------
C     *IN78 IFEQ *OFF              
C     'feedback' SCAN AGENT       77 79  
C   N79 'Feedback' SCAN AGENT       77 79  
C   N79 'FEEDBACK' SCAN AGENT       77 79  
C          
C *     --------------------------------------
C *     Feed/...
C *     --------------------------------------
C     *IN79 IFEQ *OFF              
C   N78 'feed' SCAN AGENT       77 78  
C   N78 'Feed' SCAN AGENT       77 78  
C   N78 'FEED' SCAN AGENT       77 78  
C   N78 'grub' SCAN AGENT       77 78  
C   N78 'CUBOT' SCAN AGENT       77 78  
C   N78 'spidersoft' SCAN AGENT       77 78  
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Robot
C *     --------------------------------------
C     *IN78 COMP *OFF       78  
C          
C       ENDIF                
C *     --------------------------------------
C *     Robot
C *     --------------------------------------
C   78   MOVEL(P) 'X' ROBOT            
C       ENDIF                
C       ENDIF                
C          
C       SETON         LR  
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     SIMPLEPIE BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN1 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN1X:AGENT:POS4:SCANLEN1)
C       ADD SCANLEN1X POS4            
C     SCAN1 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN2 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN2X:AGENT:POS4:SCANLEN2)
C       ADD SCANLEN2X POS4            
C     SCAN2 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN3 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN3X:AGENT:POS4:SCANLEN3)
C       ADD SCANLEN3X POS4            
C     SCAN3 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN4 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN4X:AGENT:POS4:SCANLEN4)
C       ADD SCANLEN4X POS4            
C     SCAN4 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     FACEBOOK BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     ');A' SCAN AGENT       77 78  
C   N78 'FBAN' SCAN AGENT       77 78  
C   78 SCAN1 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN1X:AGENT:POS4:SCANLEN1)
C       ADD SCANLEN1X POS4            
C     SCAN1 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     BAIDUSPIDER BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     'Baiduspider+' SCAN AGENT       77 78  
C   78 SCAN2 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN2X:AGENT:POS4:SCANLEN2)
C       ADD SCANLEN2X POS4            
C     SCAN2 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     SCAN$ BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN5 SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN5X:AGENT:POS4:SCANLEN5)
C     SCAN6 SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN6X:AGENT:POS4:SCANLEN6)
C     SCAN7 SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN7X:AGENT:POS4:SCANLEN7)
C     SCAN8 SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN8X:AGENT:POS4:SCANLEN8)
C     SCAN9 SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN9X:AGENT:POS4:SCANLEN9)
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCANA SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANAX:AGENT:POS4:SCANLENA)
C       ELSE                
C     SCANB SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANBX:AGENT:POS4:SCANLENB)
C       ELSE                
C     SCANE SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANEX:AGENT:POS4:SCANLENE)
C       ELSE                
C     SCANF SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANFX:AGENT:POS4:SCANLENF)
C       ELSE                
C     SCANG SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANGX:AGENT:POS4:SCANLENG)
C          
C     SCANW SCAN AGENT POS4     77 78  
C          
C   78   EVAL AGENT = %REPLACE(SCANWX:AGENT:POS4:SCANLENW)
C       ELSE                
C     SCANH SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANHX:AGENT:POS4:SCANLENH)
C       ELSE                
C     SCANJ SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANJX:AGENT:POS4:SCANLENJ)
C       ELSE                
C     SCANM SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANMX:AGENT:POS4:SCANLENM)
C       ELSE                
C     SCANP SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANPX:AGENT:POS4:SCANLENP)
C       ELSE                
C     SCANQ SCAN AGENT POS4     77 78  
C     *IN78 IFEQ *ON              
C       EVAL AGENT = %REPLACE(SCANQX:AGENT:POS4:SCANLENQ)
C          
C     SCANR SCAN AGENT POS4     77 78  
C          
C   78   EVAL AGENT = %REPLACE(SCANRX:AGENT:POS4:SCANLENR)
C       ELSE                
C          
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     PERCENT BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     SCAN# SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN#X:AGENT:POS4:SCANLEN#)
C       ADD SCANLEN#X POS4            
C     SCAN# SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     BYE BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C     TEXTBROWSER OREQ *ON              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     'BYE' SCAN AGENT       77 78  
C   78 SCANY SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCANYX:AGENT:POS4:SCANLENY)
C       ADD SCANLENYX POS4            
C     SCANY SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     COCRAWLER BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C     TEXTBROWSER OREQ *ON              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     'cocrawler' SCAN AGENT       77 78  
C   78 SCANZ SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCANZX:AGENT:POS4:SCANLENZ)
C       ADD SCANLENZX POS4            
C     SCANZ SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     TROUBLE BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C     TEXTBROWSER OREQ *ON              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     'trouble' SCAN AGENT       77 78  
C   78 SCANT SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCANTX:AGENT:POS4:SCANLENT)
C       ADD SCANLENTX POS4            
C     SCANT SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
  X * *MAIN* EXSR BESUCHER    
  X  
C     TUNIONSDK BEGSR                
C     TEXTBROWSER IFEQ *OFF              
C     TEXTBROWSER OREQ *ON              
C *     --------------------------------------
C *     Text im Agent suchen und ersetzen
C *     --------------------------------------
C     'TUnionSDK' SCAN AGENT       77 78  
C   78 SCAN1 SCAN AGENT POS4     77 78  
C     *IN78 DOWEQ *ON              
C       EVAL AGENT = %REPLACE(SCAN1X:AGENT:POS4:SCANLEN1)
C       ADD SCANLEN1X POS4            
C     SCAN1 SCAN AGENT:POS4 POS4     77 78  
C       ENDDO                
C       ENDIF                
C       ENDSR                
C          
C     *PSSR BEGSR                
C       EVAL BESUCHER   = '???'
C       CLEAR   POS            
C       CLEAR   LEN            
C       CLEAR   ROBOT            
C       ENDSR '*CANCL'              
C          
C     *ENTRY PLIST                
C       PARM   POS            
C       PARM   LEN            
C       PARM   ROBOT            
C       PARM   AGENT            
C       PARM   BESUCHER            
C       PARM   TEXTBROWSER            

758 ms | Kontakt | Information | Aibo-Bar © 2005-2024