Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Nebuflood - Messing With Nebuad

DZone's Guide to

Nebuflood - Messing With Nebuad

·
Free Resource
nebuflood.rb 0.1

nebuad, a new ad targetting system isntalling its hardware in isp's, creates profiles by tracking what pages users of an ip address visit.  nebuflood.rb pulls random url's (one on each line) from nebuflood.dat and simulates a visit, complete with cookies--just to mess with the profiling system.


#!/usr/bin/ruby

require 'rubygems'
require 'curb'

MINUTES   = 5	# Randomly visit sites between 0 and X minutes
DATAFILE  = "nebuflood.dat" # A database of every possible page to be visited
                            # with a different URL on every line
siteArray = Array.new

easy = Curl::Easy.new
easy.enable_cookies = TRUE
easy.cookiejar = "cookies.txt"	# Choose what file to store cookies
easy.headers["User-Agent"] = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0) Gecko/2008061600 SUSE/3.0-1.2 Firefox/3.0"

# loadDatabase: Load sites database from dataFile into siteArray
def loadDatabase( siteArray, dataFile )
  if File.readable?( dataFile )
    dataFile = File.new( dataFile, "r" )
    while !dataFile.eof do
      siteArray.insert( 0, dataFile.gets.chop )
    end
    dataFile.close
  end
end

# visitSite: Download the random site siteURL
def visitSite ( siteURL, easy )  
  easy.url = siteURL
  easy.perform
  if !easy.body_str.empty?
    puts "Downloaded " + siteURL
  end
end

# !@#$ with NebuAD
loadDatabase( siteArray, DATAFILE )
if siteArray.empty?
  puts "Cannot load database."
else
  puts "Database file loaded with " + siteArray.length.to_s + " entries."
  while ( TRUE ) do
    sleep( rand( 60 * MINUTES.to_i ) )
    visitSite( siteArray[ rand( siteArray.length ) ], easy )    
  end
end
Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}