Class SpiderDetector

java.lang.Object
org.dspace.statistics.util.SpiderDetector

public class SpiderDetector extends Object
SpiderDetector delegates static methods to SpiderDetectorService, which is used to find IP's that are spiders...
Author:
kevinvandevelde at atmire.com, ben at atmire.com, Mark Diggory (mdiggory at atmire.com), frederic at atmire.com
  • Method Details

    • getSpiderIpAddresses

      public static Set<String> getSpiderIpAddresses()
      Get an immutable Set representing all the Spider Addresses here
      Returns:
      a set of IP addresses as strings
    • readPatterns

      public static Set<String> readPatterns(File patternFile) throws IOException
      Utility method which reads lines from a file & returns them in a Set.
      Parameters:
      patternFile - the location of our spider file
      Returns:
      a vector full of patterns
      Throws:
      IOException - could not happen since we check the file be4 we use it
    • isSpider

      public static boolean isSpider(String clientIP, String proxyIPs, String hostname, String agent)
      Static Service Method for testing spiders against existing spider files.

      In future spiders HashSet may be optimized as byte offset array to improve performance and memory footprint further.

      Parameters:
      clientIP - address of the client.
      proxyIPs - comma-list of X-Forwarded-For addresses, or null.
      hostname - domain name of host, or null.
      agent - User-Agent header value, or null.
      Returns:
      true if the client matches any spider characteristics list.
    • isSpider

      public static boolean isSpider(jakarta.servlet.http.HttpServletRequest request)
      Static Service Method for testing spiders against existing spider files.
      Parameters:
      request -
      Returns:
      true|false if the request was detected to be from a spider.
    • isSpider

      public static boolean isSpider(String ip)
      Check individual IP is a spider.
      Parameters:
      ip -
      Returns:
      if is spider IP