Sha256: ab93ccbf8d5a1175eea684adc59eb7104935ea4891665e85a38b1237c88cb86e

Contents?: true

Size: 618 Bytes

Versions: 9

Compression:

Stored size: 618 Bytes

Contents

# frozen_string_literal: true

require 'irrc'

module Legitbot # :nodoc:
  module MetaIpRanges # :nodoc:
    AS = 'AS32934'

    def fetch_ip_ranges
      client = Irrc::Client.new
      client.query :radb, AS, source: :radb
      results = client.perform

      %i[ipv4 ipv6].map do |family|
        results[AS][family][AS]
      end.flatten
    end
  end

  # https://developers.facebook.com/docs/sharing/webmasters/web-crawlers/
  class Meta < BotMatch
    extend MetaIpRanges

    ip_ranges do
      fetch_ip_ranges
    end
  end

  rule Legitbot::Meta, %w[
    meta-externalagent
    meta-externalfetcher
  ]
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
legitbot-1.11.7 lib/legitbot/meta.rb
legitbot-1.11.6 lib/legitbot/meta.rb
legitbot-1.11.5 lib/legitbot/meta.rb
legitbot-1.11.4 lib/legitbot/meta.rb
legitbot-1.11.3 lib/legitbot/meta.rb
legitbot-1.11.2 lib/legitbot/meta.rb
legitbot-1.11.1 lib/legitbot/meta.rb
legitbot-1.11.0 lib/legitbot/meta.rb
legitbot-1.10.6 lib/legitbot/meta.rb