Showing preview only (281K chars total). Download the full file or copy to clipboard to get everything.
Repository: jpf/domain-profiler
Branch: master
Commit: 83ef8affa22c
Files: 56
Total size: 264.5 KB
Directory structure:
gitextract_svk5w318/
├── 500-startups
├── 500-startups.html
├── README.md
├── Rakefile
├── TODO
├── cache/
│ └── .gitignore
├── config/
│ └── name-lookups.yaml
├── domain-profiler-mind-map.mm
├── github-list
├── github.html
├── lib/
│ ├── domain-profiler/
│ │ ├── dns.rb
│ │ ├── fetch-info.rb
│ │ ├── information.rb
│ │ ├── ip-to-asn.rb
│ │ ├── name.rb
│ │ ├── ssl.rb
│ │ ├── whois-orgname.rb
│ │ └── whois.rb
│ └── domain-profiler.rb
├── list/
│ ├── alexa-top-100
│ ├── quantcast-top-100
│ ├── time-top-50
│ └── ycombinator
├── profile
├── profile-godaddy
├── profile-list
├── public/
│ ├── quantcast.html
│ ├── sorttable.js
│ └── style.css
├── quantcast.html
├── spec/
│ ├── dns/
│ │ ├── dns_spec.rb
│ │ └── fixtures/
│ │ ├── dns.raw.dump
│ │ ├── ehow.com.raw.dump
│ │ ├── furbo.org.raw.dump
│ │ └── go.com.raw.dump
│ ├── domain-profiler_spec.rb
│ ├── ip-to-asn/
│ │ └── ip-to-asn_spec.rb
│ ├── name/
│ │ └── name_spec.rb
│ ├── rcov.opts
│ ├── spec.opts
│ ├── spec_helper.rb
│ ├── ssl/
│ │ ├── fixtures/
│ │ │ ├── openssl.raw.dump
│ │ │ └── openssl.single.raw.dump
│ │ └── ssl_spec.rb
│ ├── whois/
│ │ ├── fixtures/
│ │ │ ├── furbo.org.raw.dump
│ │ │ └── zombo.com.raw.dump
│ │ └── whois_spec.rb
│ └── whois-orgname/
│ └── whois_spec.rb
├── techstars-list
├── techstars.html
├── view/
│ ├── html
│ └── text
├── ycombinator-companies-using-godaddy
├── ycombinator-list
├── ycombinator-list-all
└── ycombinator.html
================================================
FILE CONTENTS
================================================
================================================
FILE: 500-startups
================================================
## From the sometimes-its-just-faster-to-use-bash department:
## This file was generated with the following commands:
# curl http://500.co/startups/ > startups
# egrep -o 'http://500.co/startup-profiles/[^"]+' startups > startup-profiles
# mkdir profiles; cd profiles
# for f in `cat ../startup-profiles `; do var="`echo $f | cut -d '/' -f 5`.html"; curl $f > $var; done
# for f in `ls`; do cat $f | grep byline | cut -d '>' -f 3 | cut -d '<' -f 1 | cut -d '/' -f 1 ; done > 500-startups
300.mg
72lux.com
955dreams.com
affinitychina.com
alltrails.com
appbistro.com
appgroves.com
apsalar.com
exchange.co.jp
artsicle.com
awayfind.com
backytype.com
bckyrd.com
banksimple.com
baydin.com
bizeebee.com
getbloodhound.com
boostctr.com
Brainient.com
brandboards.com
brightnest.com
bugherd.com
bunndle.com
cadee.co
caplinked.com
cardinalblue.com
cardmunch.com
Central.ly
chinanetcloud.com
chirply.com
chirpme.com
getchorus.com
coderbuddy.com
colourlovers.com
connectedhq.com
console.fm
contaazul.com
contactually.com
craftcoffee.com
crave.com
crocodoc.com
crowdrally.com
culturekitchensf.com
curebit.com
dailyaisle.com
dailygobble.com
dailyworth.com
drchrono.com
drivemecrazy.mobi
drumbi.com
ecomom.com
erply.com
esparklearning.com
estately.com
evenues.com
myevoz.com
fanbridge.com
farmeron.com
fastcustomer.com
feefighters.com
fileboard.com
fitocracy.com
flowtown.com
foodspotting.com
formativelabs.com
forrst.com
from.us
gantto.com
gazehawk.com
geckoboard.com
ginzametrics.com
gizmo.com
gospotcheck.com
govoluntr.com
graphicly.com
groundcrew.us
groupspaces.com
hapyrus.com
higear.com
highlightcam.com
highscorehouse.com
usehipster.com
indinero.com
inporia.com
intercom.io
internmatch.com
keepsy.com
khush.com
kibin.com
kissmetrics.com
launchbit.com
launchrock.com
life360.com
lightbox.com
linkdex.com
loku.com
lookacross.com
lookk.com
livelovely.com
lovewithfood.com
manpacks.com
medialets.com
memetales.com
mindsnacks.com
mogotix.com
moonfruit.com
getmopix.com
motionmathgames.com
mygengo.com
netplenish.com
nettle.com
ninua.com
now.co
oneforty.com
oneschool.com
onetruefan.com
otherinbox.com
oviahr.com
paybygroup.com
payvment.com
peertransfer.com
postling.com
proven.com
getpunchd.com
rapportive.com
readyforzero.com
recurly.com
retailigence.com
rewardli.com
rotadosconcursos.com.br
saygent.com
sendgrid.com
singboard.com
sitejabber.com
skipola.com
slideshare.com
snapette.com
socialstork.com
speakergram.com
speakertext.com
spinnakr.com
spoondate.com
startupdigest.com
storytree.me
styleseat.com
switchcam.com
talkdeskapp.com
taskrabbit.com
tello.com
texting.ly
textualads.com
theicebreak.com
tinfoilsecurity.com
tinyreviewapp.com
toutapp.com
twilio.com
udemy.com
vayable.com
versly.com
vidcaster.com
viki.com
visual.ly
getvolta.com
votizen.com
lexity.com
wakemake.com
webmynd.com
weddinglovely.com
wednesdays.com
welcu.com
wepay.com
wildfireinteractive.com
getwillcall.com
plancast.com
yongopal.com
zappli.com
zencoder.com
zerply.com
zozi.com
================================================
FILE: 500-startups.html
================================================
================================================
FILE: README.md
================================================
## What is domain-profiler?
domain-profiler is a tool that uses information from various sources (Whois, DNS, SSL, ASN) to determine what decisions have been made regarding a domain or list of domains.
These decisions fall into two categories:
1. Decisions that cost money.
* Where the website is hosted.
* Where DNS is hosted.
* Where email is hosted.
* The registrar of the domain.
* Who issued the domain's SSL certificate (if anybody)
* What sort of SSL certificate the domain has (if any)
2. Decisions that might or might not cost money.
* Does the website use an image host like S3 or Imageshack?
* Does the domain have SPF records? If so, what values?
* What TTL do the DNS records have?
* Expiration date for domain.
* Expiration date for SSL certificate.
* Is there more than one result for the A, MX, or NS records?
* Are services hosted in different Autonomous Systems?
* Are all services (A, MX, NS) in the same AS?
* Does the main webpage have valid XHTML?
* What type of frontend is the domain using?
* What type of mailserver is the domain using?
* Does the domain have a "*" record in DNS?
* What sub-domains are dectable via HTTP 3xx redirects?
* What sub-domains are dectable in the contents of '/'?
This version of domain-profiler only generates reports on the "Decisions that cost money".
## Setup and Examples
### Setup
The `./profile-list` command uses Google Charts, so you'll need to install [Matt Aimonetti's](https://github.com/mattetti) [googlecharts](https://github.com/mattetti/googlecharts) gem.
`gem install googlecharts`
### Example output from the `./profile` command:
$ ./profile github.com
Fetching data for github.com: DNS Whois SSL ...
==========[ github.com ]==========
Web Hosting:
(Rackspace)
207.97.227.239
DNS Hosting:
(anchor.net.au)
ns1.anchor.net.au.
ns2.anchor.net.au.
(EveryDNS.net)
ns1.everydns.net.
ns2.everydns.net.
ns3.everydns.net.
ns4.everydns.net.
Email Hosting:
(Google)
1 ASPMX.L.GOOGLE.com.
10 ASPMX2.GOOGLEMAIL.com.
10 ASPMX3.GOOGLEMAIL.com.
5 ALT1.ASPMX.L.GOOGLE.com.
5 ALT2.ASPMX.L.GOOGLE.com.
Domain Registrar:
(Go Daddy)
SSL Issuer:
(GoDaddy.com, Inc.)
Common Name: *.github.com
### Example output from the `./profile-list` command:
#### [Quantcast Top 100](http://jpf.github.com/domain-profiler/quantcast.html)
./profile-list quantcast 'Quantcast Top 100' > quantcast.html
Based on the output from the `profile-list` command, the Quantcast Top 100 domains appear to largely self host their websites, Email, and DNS. Interestingly, a large segment of these domains are registered with Mark Monitor or the Corporation Service Company, presumeably for the domain management and brand protection services that these companies provide. The domains with SSL certificates tend to have certificates issued by VeriSign.
#### [Y Combinator startups](http://jpf.github.com/domain-profiler/ycombinator.html)
./profile-list ycombinator 'Y Combinator startups' > ycombinator.html
Based on the output from the `profile-list` command, Y Combinator startups use a wide range of web hosts, but tend towards SoftLayer, Amazon, and Slicehost. If they aren't using Google Apps for Email hosting, they do it themselves. They generally do not host DNS themselves (much to my surprise - I expected to see a smaller list of DNS providers). They largely register their domains and get SSL certificates from GoDaddy, which I found surprising considering [GoDaddy's reputation](http://en.wikipedia.org/wiki/Go_Daddy#Controversies)
Thanks
======
* [Brian Lopez](http://github.com/brianmario) for help with Ruby and RSpec.
* Team Cymru for the awesome [IP to ASN API](http://www.team-cymru.org/Services/ip-to-asn.html).
* Hacker News user <a href="http://news.ycombinator.com/user?id=brett">brett</a> for the inspiration.
* [Jed Smith](http://jedsmith.org/) for the advice on using ARIN's WHOIS to find more accurate OrgName data on IP addresses.
LICENSE
=======
(The MIT License)
Copyright (c) 2009-2010 Joel Franusic <joel@franusic.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: Rakefile
================================================
require 'rake'
# Commenting out this next line will fix the stupid "undefined method `gem' for main:Object" error on debian systems ಠ_ಠ
gem "rspec", "~>1.3.0"
require 'spec/rake/spectask'
desc "Run all examples with RCov"
Spec::Rake::SpecTask.new('spec:rcov') do |t|
t.spec_files = FileList['spec/']
t.rcov = true
t.rcov_opts = lambda do
IO.readlines("spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
end
end
Spec::Rake::SpecTask.new('spec') do |t|
t.spec_files = FileList['spec/']
t.spec_opts << '--options' << 'spec/spec.opts'
end
desc "Run all tests with RCov"
Spec::Rake::SpecTask.new('tests_with_rcov') do |t|
t.spec_files = FileList['spec/**/*.rb']
t.rcov = true
t.rcov_opts = ['--exclude', 'spec']
end
desc "Generate common files."
task :dump_main_lists do
Site = Struct.new(:list, :header, :output)
[
Site.new('ycombinator-list-all', 'Y Combinator', 'ycombinator'),
Site.new('500startups-list', '500 Startups', '500-startups'),
Site.new('github-list', 'Github', 'github'),
Site.new('list/quantcast-top-100', 'Quantcast Top 100', 'quantcast'),
].each do |site|
puts " --- #{site.inspect}"
Kernel.system "./profile-list #{site.list} '#{site.header}' > #{site.output}.html"
end
end
================================================
FILE: TODO
================================================
FIX ME: Why are some of the IP addresses for hp.com returning blank?
We should be able to tell the difference between EC2 hosts and normal amazon hosts
Determine if there is a whois error, or if it's a parsing error
SSL detection should have a 3-6 second timeout.
More complete spec tests:
- Test caching of ip-to-asn
- Write spec tests for ip-to-asn
- The DNS class could use some cleaning up.
- Strict input checking (run simplify on domain names first!)
Add RDoc
Examples folder?
If it makes sense to make a gem, use Jeweler
==================================================
Decisions that cost money:
- Registrar
- Web host
- DNS host
- Mail host
- SSL Issuer
- SSL Certificate type
Decisions that don't necessarily cost money:
- Where are images are hosted?
- SPF records, and values thereof
- TTL on DNS records
- Expiration date for domain
- Expiration date for ssl certificate
- Is there more than one result for the A, MX, or NS records?
- If so, are they in different Autonomous Systems?
- Are all services (A, MX, NS) in the same AS?
- Does the main webpage have valid XHTML?
- What type of frontend?
- What type of mailserver?
- What type of DNS server?
- Is there a * record in DNS?
================================================
FILE: cache/.gitignore
================================================
*.cache
================================================
FILE: config/name-lookups.yaml
================================================
---
:self:
:name: Self Hosted
:other:
:name: Other / Self Hosted
:none:
:name: None
:softlayer:
:name: SoftLayer
:dba:
- softlayer corporate c
- softlayer technologies inc.
- softlayer technologies
- softlayer.com
- theplanet.com internet services
- theplanet.com internet services, inc.
:netsol:
:name: Network Solutions
:dba:
- network solutions, llc.
- network solutions llc
- network solutions l.l.c.
:everydns:
:name: EveryDNS.net
:dba:
- everydns.net
:datapipe:
:name: DataPipe
:dba:
- datapipe, inc.
- datapipe.net
:vzw_biz:
:name: Verizon (Cybertrust)
:dba:
- gte corporation
:registercom:
:name: Register.com
:dba:
- register.com, inc.
:markmonitor:
:name: MarkMonitor
:dba:
- markmonitor inc.
- markmonitor.com
:dyn_inc:
:name: Dyn Inc
:dba:
- mailhop.org
- mydyndns.org
- dynect.net
- dynamic network services, inc
- dynamic network services, inc.
:amazon:
:name: Amazon
:dba:
- amazon.com
- amazon.com, inc.
- awsdns-00.co.uk
- awsdns-00.com
- awsdns-00.net
- awsdns-00.org
- awsdns-01.co.uk
- awsdns-01.com
- awsdns-01.net
- awsdns-01.org
- awsdns-02.co.uk
- awsdns-02.com
- awsdns-02.net
- awsdns-02.org
- awsdns-03.co.uk
- awsdns-03.com
- awsdns-03.net
- awsdns-03.org
- awsdns-04.co.uk
- awsdns-04.com
- awsdns-04.net
- awsdns-04.org
- awsdns-05.co.uk
- awsdns-05.com
- awsdns-05.net
- awsdns-05.org
- awsdns-06.co.uk
- awsdns-06.com
- awsdns-06.net
- awsdns-06.org
- awsdns-07.co.uk
- awsdns-07.com
- awsdns-07.net
- awsdns-07.org
- awsdns-08.co.uk
- awsdns-08.com
- awsdns-08.net
- awsdns-08.org
- awsdns-09.co.uk
- awsdns-09.com
- awsdns-09.net
- awsdns-09.org
- awsdns-10.co.uk
- awsdns-10.com
- awsdns-10.net
- awsdns-10.org
- awsdns-11.co.uk
- awsdns-11.com
- awsdns-11.net
- awsdns-11.org
- awsdns-12.co.uk
- awsdns-12.com
- awsdns-12.net
- awsdns-12.org
- awsdns-13.co.uk
- awsdns-13.com
- awsdns-13.net
- awsdns-13.org
- awsdns-14.co.uk
- awsdns-14.com
- awsdns-14.net
- awsdns-14.org
- awsdns-15.co.uk
- awsdns-15.com
- awsdns-15.net
- awsdns-15.org
- awsdns-16.co.uk
- awsdns-16.com
- awsdns-16.net
- awsdns-16.org
- awsdns-17.co.uk
- awsdns-17.com
- awsdns-17.net
- awsdns-17.org
- awsdns-18.co.uk
- awsdns-18.com
- awsdns-18.net
- awsdns-18.org
- awsdns-19.co.uk
- awsdns-19.com
- awsdns-19.net
- awsdns-19.org
- awsdns-20.co.uk
- awsdns-20.com
- awsdns-20.net
- awsdns-20.org
- awsdns-21.co.uk
- awsdns-21.com
- awsdns-21.net
- awsdns-21.org
- awsdns-22.co.uk
- awsdns-22.com
- awsdns-22.net
- awsdns-22.org
- awsdns-23.co.uk
- awsdns-23.com
- awsdns-23.net
- awsdns-23.org
- awsdns-24.co.uk
- awsdns-24.com
- awsdns-24.net
- awsdns-24.org
- awsdns-25.co.uk
- awsdns-25.com
- awsdns-25.net
- awsdns-25.org
- awsdns-26.co.uk
- awsdns-26.com
- awsdns-26.net
- awsdns-26.org
- awsdns-27.co.uk
- awsdns-27.com
- awsdns-27.net
- awsdns-27.org
- awsdns-28.co.uk
- awsdns-28.com
- awsdns-28.net
- awsdns-28.org
- awsdns-29.co.uk
- awsdns-29.com
- awsdns-29.net
- awsdns-29.org
- awsdns-30.co.uk
- awsdns-30.com
- awsdns-30.net
- awsdns-30.org
- awsdns-31.co.uk
- awsdns-31.com
- awsdns-31.net
- awsdns-31.org
- awsdns-32.co.uk
- awsdns-32.com
- awsdns-32.net
- awsdns-32.org
- awsdns-33.co.uk
- awsdns-33.com
- awsdns-33.net
- awsdns-33.org
- awsdns-34.co.uk
- awsdns-34.com
- awsdns-34.net
- awsdns-34.org
- awsdns-35.co.uk
- awsdns-35.com
- awsdns-35.net
- awsdns-35.org
- awsdns-36.co.uk
- awsdns-36.com
- awsdns-36.net
- awsdns-36.org
- awsdns-37.co.uk
- awsdns-37.com
- awsdns-37.net
- awsdns-37.org
- awsdns-38.co.uk
- awsdns-38.com
- awsdns-38.net
- awsdns-38.org
- awsdns-39.co.uk
- awsdns-39.com
- awsdns-39.net
- awsdns-39.org
- awsdns-40.co.uk
- awsdns-40.com
- awsdns-40.net
- awsdns-40.org
- awsdns-41.co.uk
- awsdns-41.com
- awsdns-41.net
- awsdns-41.org
- awsdns-42.co.uk
- awsdns-42.com
- awsdns-42.net
- awsdns-42.org
- awsdns-43.co.uk
- awsdns-43.com
- awsdns-43.net
- awsdns-43.org
- awsdns-44.co.uk
- awsdns-44.com
- awsdns-44.net
- awsdns-44.org
- awsdns-45.co.uk
- awsdns-45.com
- awsdns-45.net
- awsdns-45.org
- awsdns-46.co.uk
- awsdns-46.com
- awsdns-46.net
- awsdns-46.org
- awsdns-47.co.uk
- awsdns-47.com
- awsdns-47.net
- awsdns-47.org
- awsdns-48.co.uk
- awsdns-48.com
- awsdns-48.net
- awsdns-48.org
- awsdns-49.co.uk
- awsdns-49.com
- awsdns-49.net
- awsdns-49.org
- awsdns-50.co.uk
- awsdns-50.com
- awsdns-50.net
- awsdns-50.org
- awsdns-51.co.uk
- awsdns-51.com
- awsdns-51.net
- awsdns-51.org
- awsdns-52.co.uk
- awsdns-52.com
- awsdns-52.net
- awsdns-52.org
- awsdns-53.co.uk
- awsdns-53.com
- awsdns-53.net
- awsdns-53.org
- awsdns-54.co.uk
- awsdns-54.com
- awsdns-54.net
- awsdns-54.org
- awsdns-55.co.uk
- awsdns-55.com
- awsdns-55.net
- awsdns-55.org
- awsdns-56.co.uk
- awsdns-56.com
- awsdns-56.net
- awsdns-56.org
- awsdns-57.co.uk
- awsdns-57.com
- awsdns-57.net
- awsdns-57.org
- awsdns-58.co.uk
- awsdns-58.com
- awsdns-58.net
- awsdns-58.org
- awsdns-59.co.uk
- awsdns-59.com
- awsdns-59.net
- awsdns-59.org
- awsdns-60.co.uk
- awsdns-60.com
- awsdns-60.net
- awsdns-60.org
- awsdns-61.co.uk
- awsdns-61.com
- awsdns-61.net
- awsdns-61.org
- awsdns-62.co.uk
- awsdns-62.com
- awsdns-62.net
- awsdns-62.org
- awsdns-63.co.uk
- awsdns-63.com
- awsdns-63.net
- awsdns-63.org
:thawte:
:name: thawte
:dba:
- thawte consulting cc
- thawte consulting (pty) ltd.
:oneandone:
:name: 1 and 1
:dba:
- 1 & 1 internet ag
- 1and1.com
- 1&1 internet inc.
:gandi:
:name: Gandi SAS
:dba:
- gandi sas
- gandi.net
- dns.gandi.net
:digicert:
:name: DigiCert
:dba:
- digicert inc
:webfaction:
:name: WebFaction
:dba:
- webfaction.com
- webfaction
:safenames:
:name: Safenames
:dba:
- safenames ltd
:mediatemple:
:name: Media Temple
:dba:
- media temple, inc.
- mediatemple.net
:dynadot:
:name: Dynadot
:dba:
- dynadot, llc
:aol:
:name: AOL
:dba:
- aol transit data network
- aol, llc
- aol.com
:pair:
:name: pair Networks
:dba:
- pair networks
- pair.com
:godaddy:
:name: Go Daddy
:dba:
- domaincontrol.com
- godaddy.com
- godaddy.com, inc.
- godaddy.com, llc
- secureserver.net
- wild west domains, inc.
:dnsmadeeasy:
:name: DNS Made Easy
:dba:
- dnsmadeeasy.com
:yahoo:
:name: Yahoo!
:dba:
- yahoo.com
- inktomi corporation
- altavista company
:savis:
:name: Savvis
:dba:
- savvis
- savvis.net
:melbourneit:
:name: Melbourne IT
:dba:
- melbourne it, ltd. d/b/a internet names worldwide
:easydns:
:name: easyDNS
:dba:
- easydns technologies, inc.
- easydns.com
- easydns.net
- easydns.org
:att:
:name: ATT
:dba:
- at&t enhanced network services
- at&t internet services
- att.net
:tucows:
:name: Tucows
:dba:
- tucows inc.
- tucows.com co.
-
:pairnic:
:name: pairNIC
:dba:
- pairnic
:google:
:name: Google
:dba:
- aspmx.l.google.com
- google.com
- googlemail.com
- l.google.com
- google
- google inc.
:domaindiscover:
:name: DomainDiscover
:dba:
- domaindiscover
- domaindiscover.com
:ait:
:name: AIT
:dba:
- advanced internet technologies, inc.
:serverbeach:
:name: ServerBeach
:dba:
- serverbeach
:microsoft:
:name: Microsoft
:dba:
- msft.net
- microsoft.com
- microsoft corp
:enom:
:name: eNom
:dba:
- emailsrvr.com
- enom, inc.
- enom, incorporated
- messagingengine.com
- name-services.com
- registrar-servers.com
:comodo:
:name: Comodo Group
:dba:
- comodo ca limited
- the usertrust network
:ultradns:
:name: Neustar (UltraDNS)
:dba:
- ultradns.info
- ultradns.net
- ultradns.org
- ultradns.co.uk
:postini:
:name: Google (Postini)
:dba:
- psmtp.com
:iac:
:name: IAC Search and Media
:dba:
- iac search media inc
:domainpeople:
:name: DomainPeople
:dba:
- domainpeople, inc.
:netnames:
:name: NetNames
:dba:
- group nbt plc aka netnames
:equifax:
:name: Equifax
:dba:
- equifax secure inc.
- equifax
:csc:
:name: Corporation Service Company
:dba:
- csc corporate domains, inc.
:verisign:
:name: VeriSign
:dba:
- verisign trust network
- verisign, inc.
:geotrust:
:name: GeoTrust
:dba:
- geotrust, inc.
:rackspace:
:name: Rackspace
:dba:
- rackspace.com
- rackspace.com, ltd.
- rackspace hosting
- stabletransit.com
:slicehost:
:name: Slicehost
:dba:
- slicehost llc
- slicehost.net
:internap:
:name: Internap
:dba:
- pnap.net
- internap network services corporation
:dotster:
:name: Dotster
:dba:
- dotster, inc.
:akami:
:name: Akamai
:dba:
- akam.net
- akamai technologies
- akamai technologies, inc.
:domainbank:
:name: Domain Bank
:dba:
- dstr acquisition pa i, llc dba domainbank.com
:nettica:
:name: Nettica
:dba:
- nettica.com
- nettica domains, inc.
:he:
:name: Hurricane Electric
:dba:
- hurricane electric, inc.
:dreamhost:
:name: DreamHost
:dba:
- new dream network, llc
- dreamhost.com
:zerigo:
:name: Zerigo
:dba:
- zerigo.net
:linode:
:name: Linode
:dba:
- linode
- linode.com
- global net access, llc
:cloudflare:
:name: CloudFlare
:dba:
- cloudflare.com
- cloudflare, inc.
:joker:
:name: Joker.com
:dba:
- csl computer service langenbach gmbh d/b/a joker.com
:mailgun:
:name: Mailgun
:dba:
- mailgun.org
:namecom:
:name: Name.com
:dba:
- name.com
- name.com llc
:moniker:
:name: Moniker
:dba:
- moniker online services, inc.
:blacklotus:
:name: Black Lotus
:dba:
- black lotus communications
:issue:
:name: DNS issue
:dba:
- opendns, llc
================================================
FILE: domain-profiler-mind-map.mm
================================================
<map version="0.8.1">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1249535541029" ID="Freemind_Link_404127227" MODIFIED="1249535554161" TEXT="Domain Profiler">
<node CREATED="1249535591163" ID="_" MODIFIED="1249535596580" POSITION="right" TEXT="Motavations">
<node CREATED="1249535637238" ID="Freemind_Link_1370486696" MODIFIED="1249535640864" TEXT="i do this all the time">
<node CREATED="1249535786527" ID="Freemind_Link_401559732" MODIFIED="1249535793526" TEXT="I wanted a way to AUZTOMATE"/>
</node>
<node CREATED="1249535911638" ID="Freemind_Link_283580413" MODIFIED="1249535934175" TEXT="wanted an easy way to see what decisions other comanies have made"/>
<node CREATED="1249535934547" FOLDED="true" ID="Freemind_Link_1584666302" MODIFIED="1249535939141" TEXT="Decisions">
<node CREATED="1249535939617" ID="Freemind_Link_1819729497" MODIFIED="1249535947617" TEXT="ones that cost money">
<node CREATED="1249535954938" ID="Freemind_Link_315756999" MODIFIED="1249535957500" TEXT="Web Host"/>
<node CREATED="1249535958215" ID="Freemind_Link_1910640874" MODIFIED="1249535962521" TEXT="DNS Host"/>
<node CREATED="1249535962798" ID="Freemind_Link_1818244965" MODIFIED="1249535965224" TEXT="Mail Host"/>
<node CREATED="1249535965828" ID="Freemind_Link_708358152" MODIFIED="1249535970645" TEXT="Registrar"/>
<node CREATED="1249535970938" ID="Freemind_Link_525657358" MODIFIED="1249535986917" TEXT="SSL Issuer"/>
<node CREATED="1249535978589" ID="Freemind_Link_871738618" MODIFIED="1249535982303" TEXT="SSL cert type"/>
</node>
<node CREATED="1249535947941" ID="Freemind_Link_257002870" MODIFIED="1249535953949" TEXT="ones that don't cost money">
<node CREATED="1249536016651" ID="Freemind_Link_898068561" MODIFIED="1249536026153" TEXT="DNS TTL's"/>
<node CREATED="1249536032043" FOLDED="true" ID="Freemind_Link_24671833" MODIFIED="1249536157310" TEXT="SPF records">
<node CREATED="1249536157803" ID="Freemind_Link_1158443831" MODIFIED="1249536159877" TEXT="do they exist?">
<node CREATED="1249536160889" ID="Freemind_Link_1377275554" MODIFIED="1249536167521" TEXT="what are they set to?"/>
</node>
</node>
<node CREATED="1249536169148" ID="Freemind_Link_1147510388" MODIFIED="1249536176261" TEXT="Expiration for domain"/>
<node CREATED="1249536176793" ID="Freemind_Link_1140307037" MODIFIED="1249536179851" TEXT="Expiration for SSL"/>
<node CREATED="1249536180855" FOLDED="true" ID="Freemind_Link_1240505849" MODIFIED="1249536198458" TEXT="Is there more than one result for:">
<node CREATED="1249536199454" ID="Freemind_Link_1009947120" MODIFIED="1249536200625" TEXT="A"/>
<node CREATED="1249536202444" ID="Freemind_Link_698695469" MODIFIED="1249536203183" TEXT="MX"/>
<node CREATED="1249536203508" ID="Freemind_Link_1384144196" MODIFIED="1249536204863" TEXT="NS"/>
</node>
<node CREATED="1249536208009" ID="Freemind_Link_8690959" MODIFIED="1249536216177" TEXT="Are hosts in different ASes"/>
<node CREATED="1249536220387" ID="Freemind_Link_1238754757" MODIFIED="1249536229699" TEXT="Main webpage valid XHTML"/>
<node CREATED="1249536230087" FOLDED="true" ID="Freemind_Link_734525337" MODIFIED="1249536348436" TEXT="Detect type of">
<node CREATED="1249536348729" ID="Freemind_Link_1871644528" MODIFIED="1249536351921" TEXT="Frontend"/>
<node CREATED="1249536352151" ID="Freemind_Link_1276249868" MODIFIED="1249536354833" TEXT="Mail Server"/>
<node CREATED="1249536355060" ID="Freemind_Link_1801591655" MODIFIED="1249536364084" TEXT="DNS Server"/>
</node>
<node CREATED="1249536384968" ID="Freemind_Link_1171770420" MODIFIED="1249536393144" TEXT="DNS has a * record?"/>
</node>
</node>
</node>
<node CREATED="1249535598121" ID="Freemind_Link_374603701" MODIFIED="1249535615963" POSITION="right" TEXT="Expected findings">
<node CREATED="1249535795379" ID="Freemind_Link_1331996271" MODIFIED="1249535825414" TEXT="homogenous results for YC startups">
<node CREATED="1249535833624" ID="Freemind_Link_911959890" MODIFIED="1249535837313" TEXT="esp for DNS"/>
</node>
</node>
<node CREATED="1249535616248" ID="Freemind_Link_1613849065" MODIFIED="1249535620474" POSITION="right" TEXT="Actual findings">
<node CREATED="1249535828818" ID="Freemind_Link_1382512003" MODIFIED="1249535845805" TEXT="YC startups not homogenous">
<node CREATED="1249535846697" ID="Freemind_Link_1653588069" MODIFIED="1249535849139" TEXT="esp for DNS"/>
</node>
<node CREATED="1249536449090" ID="Freemind_Link_1544229921" MODIFIED="1249536461134" TEXT="discovered previously unknown companies/services">
<node CREATED="1249536461748" ID="Freemind_Link_1844525773" MODIFIED="1249536465038" TEXT="Mark Monitor"/>
<node CREATED="1249536465602" ID="Freemind_Link_1893076224" MODIFIED="1249536470938" TEXT="Corporation Services Company"/>
</node>
</node>
</node>
</map>
================================================
FILE: github-list
================================================
github.com
jobs.github.com
status.github.com
shop.github.com
develop.github.com
================================================
FILE: github.html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Github</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="author" content="Joel Franusic" />
<link rel="stylesheet" href="public/style.css" media="screen,projection" type="text/css" />
<script src="public/sorttable.js"></script>
</head>
<body>
<div id="container">
<h1>Chart of Github companies' hosting decisions, 2011 edition</h1>
<div id="note">
Generated by <a href="https://github.com/jpf">Joel</a> on 2013-01-02 using his <a href="http://github.com/jpf/domain-profiler/tree/master">domain-profiler</a> software. Patches welcome.
</div>
<div id="charts">
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:f99&chl=Other+%2F+Self+Hosted|None|Rackspace&chtt=Web+Host&cht=p&chs=400x200&chxr=0,1,2,2"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:P9&chl=Google|None&chtt=Email+Host&cht=p&chs=400x200&chxr=0,1,4"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:P9&chl=Dyn+Inc|None&chtt=DNS+Host&cht=p&chs=400x200&chxr=0,1,4"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:P9&chl=Go+Daddy|Other+%2F+Self+Hosted&chtt=Registrar&cht=p&chs=400x200&chxr=0,1,4"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:UU9&chl=None|Equifax|DigiCert&chtt=SSL+Issuer&cht=p&chs=400x200&chxr=0,1,3"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:f99&chl=None|star|normal&chtt=Certificate+Type&cht=p&chs=400x200&chxr=0,1,2,2"/>
</div>
<div id="data">
<table class="sortable" border="1">
<tr>
<th>Domain</th>
<th>Web Host</th>
<th>Email Host</th>
<th>DNS Host</th>
<th>Registrar</th>
<th>SSL Issuer</th>
<th>Certificate Type</th>
</tr>
<tr>
<td>github.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"github.com"</td>
</tr>
<tr>
<td>jobs.github.com</td>
<td>None</td>
<td>None</td>
<td>None</td>
<td>"Unknown"</td>
<td>DigiCert</td>
<td>"jobs.github.com"</td>
</tr>
<tr>
<td>status.github.com</td>
<td>None</td>
<td>None</td>
<td>None</td>
<td>"Unknown"</td>
<td>DigiCert</td>
<td>"*.github.com"</td>
</tr>
<tr>
<td>shop.github.com</td>
<td>"Server Central Network"</td>
<td>None</td>
<td>None</td>
<td>"Unknown"</td>
<td>Equifax</td>
<td>"*.myshopify.com"</td>
</tr>
<tr>
<td>develop.github.com</td>
<td>Rackspace</td>
<td>None</td>
<td>None</td>
<td>"Unknown"</td>
<td>None</td>
<td>None</td>
</tr>
</table>
</div>
</div><!-- container -->
</body>
</html>
================================================
FILE: lib/domain-profiler/dns.rb
================================================
class DNSType
def initialize(input)
@input = input
end
def mx_value(n)
return :none unless (defined? @input[:type]) and @input[:type] == 'MX'
@input[:answer].split(' ')[n]
end
# Helper for the :mx method
def priority
mx_value(0)
end
# Helper for the :mx method
def host
mx_value(1)
end
def method_missing(type)
begin
@input[type] ||= :none
rescue
:none
end
end
end
class DNSQuery
def initialize(input)
@lookup = [:query,:ttl,:cl,:type,:answer]
begin
@query = input.grep(/^[^;]/).map do |line|
tokenized = line.gsub(/\t+/,"\t").split("\t")
Hash[*@lookup.zip(tokenized).flatten]
end
rescue
@query = Hash[]
end
end
def spf
@query.map{|record|
next unless record[:type] == 'TXT'
txt = DNSType.new(record).answer.gsub('"','')
next unless txt.match(/^v=spf/)
txt
}.compact
end
def method_missing(type)
rv = @query.sort{|a,b| a[:answer].to_s <=> b[:answer].to_s}.map { |record|
record if record[:type] == type.to_s.upcase
}.compact
if rv.empty?
[DNSType.new(nil)]
else
rv.map { |record| DNSType.new(record) }
end
end
end
class DNS
def parse(data)
begin
@data = data.split("\n")
rescue
@data = Array.new()
end
end
def method_missing(type)
query = DNSQuery.new(@data)
query.send(type)
end
end
================================================
FILE: lib/domain-profiler/fetch-info.rb
================================================
class Information
def fetch(host)
data = {}
version = 'v2'
filename = "cache/#{host}.#{version}.cache"
if File.exists?(filename)
data = open(filename) { |f| Marshal.load(f) }
else
data[:version] = version
print "Fetching data for #{host}: DNS "
$defout.flush
data[:dns] = `server=4.2.2.2; host=#{host}; dig @$server ns $host; dig @$server a $host; dig @$server mx $host; dig @$server txt $host`
print 'Whois '
$defout.flush
data[:whois] = `sleep 5; whois 'domain #{host}'`
print 'SSL'
$defout.flush
data[:ssl] = `echo '' | openssl s_client -connect #{host}:443 2>&1`
open(filename, "w") { |f| Marshal.dump(data, f) }
print "\n"
$defout.flush
end
end # fetch
end # Information
================================================
FILE: lib/domain-profiler/information.rb
================================================
class Information
def initialize(opt={})
@debug = opt[:debug]
end
def status(message)
return unless @debug
$stderr.print message
$stderr.flush
end
def fetch(host)
data = {}
#TODO: Automatically generate a 'version' - checksum this file or class?
version = 'v5'
use_www_prefix_for_a_record_lookups = true
dns_server = '208.67.222.222' # OpenDNS
# dns_server = '4.2.2.2' # Level 3
filename = "cache/#{host}.#{version}.cache"
if File.exists?(filename)
data = open(filename) { |f| Marshal.load(f) }
else
data[:version] = version
if use_www_prefix_for_a_record_lookups
host_prefix = 'www.'
end
status "Fetching data for #{host}: DNS "
dnsopt = '+noadditional +noauthority'
data[:dns] = `server=#{dns_server}; host=#{host}; dig @$server ns $host #{dnsopt}; dig @$server a $host #{dnsopt}; dig @$server a #{host_prefix}#{host} #{dnsopt}; dig @$server mx $host #{dnsopt}; dig @$server txt $host #{dnsopt}`
status 'Whois '
data[:whois] = `sleep 2; whois 'domain #{host}'`
status 'SSL'
data[:ssl] = `echo '' | openssl s_client -connect #{host}:443 2>&1`
status ' ...'
open(filename, "w") { |f| Marshal.dump(data, f) }
status "\n"
data
end
end # fetch
end # Information
================================================
FILE: lib/domain-profiler/ip-to-asn.rb
================================================
require 'ipaddr'
class Origin
def initialize(ip_address)
# dig +short 31.108.90.216.origin.asn.cymru.com TXT
rip = ip_address.to_s.split('.').reverse.join('.')
rv = `dig +short #{rip}.origin.asn.cymru.com TXT`
@asn, @bgp_prefix, @country_code, @registry, @allocation_date = rv.chomp.gsub('"','').split(' | ')
end
attr_reader :asn, :bgp_prefix, :country_code, :registry, :allocation_date
end
class ASN
def initialize(asn)
rv = `dig +short AS#{asn}.asn.cymru.com TXT`
@asn, @country_code, @registry, @allocation_date, @description = rv.chomp.gsub('"','').split(' | ')
end
def netname
@description.match(/([^ ]+)/)[0]
end
def orgname
return nil unless @description.is_a? String
@description.match(/.*? (- )?(.*)/)[2]
end
attr_reader :asn, :country_code, :registry, :allocation_date, :description
end
class IPtoASN
def initialize(input, use_cache = true)
begin
ip_address = IPAddr.new(input)
rescue
raise ArgumentError, "Input '#{input}' is invalid"
end
version = 'v1'
filename = "cache/ip-to-asn-#{ip_address}.#{version}.cache"
@data = {}
if File.exists?(filename) and use_cache
@data = open(filename) { |f| Marshal.load(f) }
else
@data[:origin] = Origin.new(ip_address)
@data[:asn] = ASN.new(@data[:origin].asn)
open(filename, 'w') { |f| Marshal.dump(@data, f) } if use_cache
end
end
def origin
@data[:origin]
end
def asn
@data[:asn]
end
end
================================================
FILE: lib/domain-profiler/name.rb
================================================
class Name
def initialize
lookup_file = File.expand_path(File.dirname(__FILE__) + '../../../config/name-lookups.yaml')
@aliases = YAML::load(File.open(lookup_file))
@lookup = {}
@aliases.keys.each {|shortname|
next unless @aliases[shortname][:dba].is_a? Array
@aliases[shortname][:dba].each {|dba|
@lookup[dba] = shortname
}
}
end
def shorten(input)
return input unless input.is_a? String
return input unless input.match('.')
host = input.split('.')
# Return the second level domain if the top level domain name is com, net, or org.
return "#{host[-2]}.#{host[-1]}" if host[-1].match(/(com|net|org)/)
# Remove the leftmost subdomain if the domain name has a third level domain.
host.shift if host.size > 2
host.join('.')
end
def simplify(input,match=nil)
return input unless input.is_a? String
return :self if (match and simplify(input) == simplify(match))
return @lookup[input.downcase] if @lookup[input.downcase]
return :self if (match and simplify(input).gsub(/\W/,'').downcase.include? match.split(/\./)[-2])
input
end
def full(shortname)
return shortname unless shortname.is_a? Symbol
return shortname unless @aliases[shortname].is_a? Hash
@aliases[shortname][:name]
end
end
================================================
FILE: lib/domain-profiler/ssl.rb
================================================
require 'open3'
# connect: Operation timed out
# connect: Connection refused
# connect:errno=61
class SSL
def initialize
@no_data = true
end
def parse(input)
@data = {}
output = []
Open3.popen3('/usr/bin/openssl x509 -noout -dates -subject -issuer -email') { |stdin, stdout, stderr|
stdin.puts(input)
stdin.close
output = stdout.readlines
}
output.each { |line|
(k,v) = [*line.gsub("\n", '').split(/\=/,2)].flatten
@data[k] = v
@no_data = false
}
end
def cn
return [:none] if @no_data
[@data['subject'].match(/CN\s*=\s*([^\/]+)/)[1]]
end
def ca
return [:none] if @no_data
return [:none] unless @data.is_a? Hash
begin
[*@data['issuer'].match(/O=([^\/]+)\/[A-Z]/)[1]]
rescue
[:none]
end
end
def created
return [:none] if @no_data
[@data['notBefore'] ||= :unknown]
end
def expires
return [:none] if @no_data
[@data['notAfter'] ||= :unknown]
end
end
================================================
FILE: lib/domain-profiler/whois-orgname.rb
================================================
# Thanks to HN user 'jedsmith' for telling me about this! (http://news.ycombinator.com/item?id=2081312)
class WhoisOrgName
def initialize(input, use_cache = true)
begin
ip_address = IPAddr.new(input)
rescue
raise ArgumentError, "Input '#{input}' is invalid"
end
version = 'v2'
filename = "cache/whois-orgname-#{ip_address}.#{version}.cache"
@data = {}
if File.exists?(filename) and use_cache
@data = open(filename) { |f| Marshal.load(f) }
else
@data = `sleep 1; whois -h whois.arin.net 'n #{ip_address}'`
open(filename, 'w') { |f| Marshal.dump(@data, f) } if use_cache
end
end
def grep(pattern)
begin
@data.grep(pattern).to_s.split(':', 2)[1].strip ||= 'Unknown'
rescue
'Unknown'
end
end
def orgname
grep(/OrgName:/)
end
end
================================================
FILE: lib/domain-profiler/whois.rb
================================================
class Whois
def parse(data)
@data = data.to_s.lines
# com = verisign
# net = verisign
# org = pir
# info = afilias
end
def grep(pattern)
begin
@data.grep(pattern).join.split(':', 2)[1].strip ||= 'Unknown'
rescue
'Unknown'
end
end
def registrar
rv = grep(/Registrar:/)
# cleanup pir and afilias type records
[*rv.sub(/ \([^\)]+\)$/, '')]
end
def created
grep(/Creat.+:/)
end
def updated
grep(/Updated.+:/)
end
def expires
grep(/Expiration Date:/)
end
def status
grep(/Status:/)
end
end
================================================
FILE: lib/domain-profiler.rb
================================================
require 'ipaddr'
require 'domain-profiler/dns'
require 'domain-profiler/whois'
require 'domain-profiler/whois-orgname'
require 'domain-profiler/ssl'
require 'domain-profiler/name'
require 'domain-profiler/information'
require 'domain-profiler/ip-to-asn'
require 'yaml'
class DomainProfiler
def initialize(host)
@hostname = host
data = Information.new(:debug => true).fetch(host)
@dns = DNS.new
@dns.parse(data[:dns])
@whois = Whois.new
@whois.parse(data[:whois])
@ssl = SSL.new
@ssl.parse(data[:ssl])
end
attr_reader :dns, :whois, :ssl, :hostname
end
def orgname(input)
begin
name = WhoisOrgName.new(input).orgname
if name == 'Unknown'
IPtoASN.new(input).asn.orgname
else
name
end
rescue
input
end
end
================================================
FILE: list/alexa-top-100
================================================
google.com
yahoo.com
youtube.com
facebook.com
live.com
msn.com
wikipedia.org
blogger.com
baidu.com
yahoo.co.jp
myspace.com
google.co.in
google.de
qq.com
twitter.com
microsoft.com
rapidshare.com
sina.com.cn
bing.com
google.fr
wordpress.com
google.co.uk
google.cn
ebay.com
craigslist.org
fc2.com
google.com.br
yandex.ru
amazon.com
flickr.com
mail.ru
google.it
vkontakte.ru
google.co.jp
aol.com
hi5.com
google.es
taobao.com
163.com
photobucket.com
doubleclick.com
bbc.co.uk
imdb.com
orkut.com.br
google.com.mx
go.com
ask.com
youporn.com
cnn.com
bp.blogspot.com
pornhub.com
sohu.com
conduit.com
google.ca
adobe.com
apple.com
vmn.net
livejasmin.com
orkut.co.in
skyrock.com
imageshack.us
odnoklassniki.ru
redtube.com
google.com.tr
youku.com
uol.com.br
rakuten.co.jp
cnet.com
ebay.de
tube8.com
dailymotion.com
linkedin.com
tudou.com
about.com
adultfriendfinder.com
ameblo.jp
mediafire.com
megavideo.com
google.co.id
livedoor.com
google.com.au
rediff.com
livejournal.com
google.ru
kaixin001.com
megaupload.com
espn.go.com
globo.com
mixi.jp
xvideos.com
4shared.com
friendster.com
tagged.com
google.pl
ku6.com
mininova.org
clicksor.com
google.com.sa
goo.ne.jp
soso.com
================================================
FILE: list/quantcast-top-100
================================================
#List: Quantcast Top 100
google.com
yahoo.com
msn.com
facebook.com
live.com
youtube.com
microsoft.com
wikipedia.org
myspace.com
ebay.com
aol.com
craigslist.org
blogspot.com
ask.com
amazon.com
mapquest.com
about.com
answers.com
adobe.com
wordpress.com
windows.com
photobucket.com
bing.com
walmart.com
twitter.com
paypal.com
go.com
att.com
imdb.com
reference.com
flickr.com
blogger.com
yellowpages.com
cnn.com
target.com
simplyhired.com
webmd.com
comcast.net
weather.com
eonline.com
bankofamerica.com
apple.com
chase.com
cnet.com
ehow.com
monster.com
whitepages.com
bizrate.com
verizonwireless.com
ezinearticles.com
careerbuilder.com
hulu.com
digg.com
metacafe.com
bestbuy.com
usps.com
comcast.com
geocities.com
revsci.net
wellsfargo.com
reuters.com
expedia.com
evite.com
people.com
merriam-webster.com
linkedin.com
netflix.com
hp.com
huffingtonpost.com
tripadvisor.com
examiner.com
nytimes.com
mtv.com
ups.com
jcpenney.com
shopzilla.com
capitalone.com
tripod.com
pandora.com
pogo.com
verizon.com
sears.com
smarter.com
pronto.com
vzw.com
homedepot.com
city-data.com
dell.com
nih.gov
foxnews.com
ign.com
lowes.com
wunderground.com
usatoday.com
scribd.com
typepad.com
twitpic.com
usmagazine.com
ticketmaster.com
dailymotion.com
================================================
FILE: list/time-top-50
================================================
gasbuddy.com
howcast.com
iliketotallyloveit.com
omiru.com
psychcentral.com
tripkick.com
wikitravel.com
#answers.yahoo.com
zeer.com
afrigadget.com
askmen.com
concreteloop.com
health.com
popsugar.com
profootballtalk.com
ratemyprofessors.com
seriouseats.com
thenest.com
geni.com
mapjack.com
mint.com
nextag.com
nymbler.com
picnik.com
pixelgirlpresents.com
searchme.com
tinyurl.com
mobaganda.com
urbandictionary.com
#cylinders.library.ucsb.edu
hulu.com
imeem.com
kongregate.com
ffffound.com
lookybook.com
someecards.com
websudoku.com
penny-arcade.com
gaiaonline.com
carbonrally.com
colourlovers.com
apartmenttherapy.com
digitalvaults.org
freerice.com
hypebeast.com
kiva.org
netaporter.com
opensourcefood.com
petfinder.com
wikisky.org
================================================
FILE: list/ycombinator
================================================
#List: Y Combinator
#2009-08-05
reddit.com
loopt.com
clickfacts.com
snipshot.com
inklingmarkets.com
wufoo.com
thinkature.com
jamglue.com
scribd.com
weebly.com
virtualmin.com
buxfer.com
octopart.com
heysan.com
justin.tv
omgpop.com
xobni.com
zecter.com
adpinion.com
fuzzwich.com
bountii.com
songkick.com
auctomatic.com
disqus.com
splashup.com
draftmix.com
etherpad.com
webmynd.com
rescuetime.com
heroku.com
tipjoy.com
addher.com
socialbrowse.com
wundrbar.com
chatterous.com
mixwit.com
snaptalent.com
clickpass.com
insoshi.com
mightyquiz.com
280north.com
getdropbox.com
posterous.com
anyvite.com
ticketstumbler.com
popcuts.com
ididwork.com
startuply.com
picwing.com
co2stats.com
polleverywhere.com
backtype.com
contestmachine.com
frogmetrics.com
zumodrive.com
heyzap.com
fathomdb.com
foodoro.com
divvyshot.com
echodio.com
cloudkick.com
airbnb.com
thesixtyone.com
fliggo.com
voxli.com
bumptechnologies.com
renthop.com
================================================
FILE: profile
================================================
#!/usr/bin/env ruby
# encoding: UTF-8
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'pp'
require 'domain-profiler'
require 'erb'
def help
puts <<-help
Usage:
$ ./profile domain.com
help
end
if ($stdin.tty? && ARGV.empty?) || ARGV.delete('-h') || ARGV.delete('--help')
help
else
profile = nil
ARGV.each do |domain|
profile = DomainProfiler.new(domain)
puts ERB.new(File.read("view/text")).result
end
end
================================================
FILE: profile-godaddy
================================================
#!/usr/bin/env ruby
# encoding: UTF-8
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'pp'
require 'domain-profiler'
require 'rubygems'
require 'gchart'
require 'erb'
def fullname(name)
Name.new.full(name)
end
class Array
def lookup(host)
self.map{|name| Name.new.simplify(name,host) }.uniq
end
end
if ARGV.length != 2
print "Usage: ./profile-godaddy [file containing one domain per line] 'name of company grouping'\n"
exit
end
filename = ARGV[0]
file = File.new(filename)
hosts = {}
list_name = ARGV[1] ? ARGV[1] : 'REPLACE ME'
max_domain_length = 0
file.map {|host|
if match_data = host.match(/^#List:(.*)/)
list_name = match_data[1]
end
next if host.match(/^#/)
host.chomp!
profile = DomainProfiler.new(host)
if(host.length > max_domain_length)
max_domain_length = host.length
end
registrar = profile.whois.registrar.lookup(host)
dns_host = profile.dns.ns.map{|record| Name.new.shorten(record.answer) }.lookup(host)
ssl_issuer = profile.ssl.ca.lookup(host)
out = {}
out[:registrar] = (registrar[0] == :godaddy) ? 4 : 0
out[:dns_host] = (dns_host[0] == :godaddy) ? 2 : 0
out[:ssl_issuer] = (ssl_issuer[0] == :godaddy) ? 1 : 0
out[:sort_key] = out[:registrar] + out[:dns_host] + out[:ssl_issuer]
hosts[host] = out
}
print "This is a list of all %s companies that appear to do business with \nGoDaddy.\n" % [list_name]
puts <<PREAMBLE_END
In addition to showing which domains were registered through GoDaddy, this list
also shows domains that use GoDaddy's DNS service or use SSL certificates
purchased from GoDaddy.
Since it's easier to stop doing business with GoDaddy if your DNS is hosted
elsewhere, I've sorted this list according to the relative ease of moving away
from GoDaddy: The closer a domain is to the top of this list, the easier it
should be for the owners of that domain to stop doing business with GoDaddy.
---
Corrections to this list are welcome.
I prefer pull-requests on GitHub, you can also contact me on Twitter (@jf).
The code I used to generate this list is here:
https://github.com/jpf/domain-profiler
---
PREAMBLE_END
# Turn the list of host data into a hash of type data
hosts.sort_by{ |hostname,data| data[:sort_key].to_s + hostname }.each do |hostname,data|
next unless data[:sort_key] > 0
puts "%s %s %s %s" % [hostname.ljust(max_domain_length,' '),
(data[:registrar] > 0) ? 'REGISTRAR' : ' ',
(data[:dns_host] > 0) ? 'DNS' : ' ',
(data[:ssl_issuer] > 0) ? 'SSL' : ' '
]
end
================================================
FILE: profile-list
================================================
#!/usr/bin/env ruby
# encoding: UTF-8
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'pp'
require 'domain-profiler'
require 'rubygems'
require 'gchart'
require 'erb'
def fullname(name)
Name.new.full(name)
end
class Array
def lookup(host)
self.map{|name| Name.new.simplify(name,host) }.uniq
end
end
if ARGV.length == 0
print "Usage: ./profile-list [file containing one domain per line] 'header to put in HTML output'\n"
exit
end
filename = ARGV[0]
file = File.new(filename)
hosts = {}
list_name = ARGV[1] ? ARGV[1] : 'REPLACE ME'
file.map {|host|
if match_data = host.match(/^#List:(.*)/)
list_name = match_data[1]
end
next if host.match(/^#/)
host.chomp!
profile = DomainProfiler.new(host)
begin
out = {}
out[:web_host] = profile.dns.a.map{|record| orgname(record.answer) }.lookup(host)
out[:dns_host] = profile.dns.ns.map{|record| Name.new.shorten(record.answer) }.lookup(host)
out[:mail_host] = profile.dns.mx.map{|record| Name.new.shorten(record.host) }.lookup(host)
out[:registrar] = profile.whois.registrar.lookup(host)
out[:ssl_issuer] = profile.ssl.ca.lookup(host)
out[:ssl_type] = profile.ssl.cn
hosts[host] = out
rescue
end
}
# Modify this to make stats on hosting provider, dns, mail, whois, ssl, ssn type and count HTML
count = {}
types = [:web_host,:mail_host,:dns_host,:registrar,:ssl_issuer,:ssl_type]
types.each { |kind| count[kind] = [] }
# Turn the list of host data into a hash of type data
hosts.each do |hostname,data|
data.each do |kind,value|
if kind === :ssl_type and not value[0].is_a? Symbol
if value[0].match(/^\*/)
ssl_type = :star
else
ssl_type = :normal
end
value = ssl_type
end
count[kind].push(value)
end
end
output = {}
count.each do |kind,values|
summary = {}
values.flatten.each do |value|
value = :other unless value.is_a? Symbol
if summary[value].is_a? Integer
summary[value] += 1
else
summary[value] = 1
end
end
output[kind] = summary
end
# Collapse any item less than smallest_percent into the :other category
smallest_percent = 0.02
output.each do |kind,values|
total = 1
values.each {|k,v| total += v}
smallest_value = total * smallest_percent
values.each {|k,v|
if v < smallest_value
values[:other] = 1 unless values[:other].is_a? Integer
values[:other] += v
values.delete(k)
end
}
end
full_name = {
:web_host => 'Web Host',
:mail_host => 'Email Host',
:dns_host => 'DNS Host',
:registrar => 'Registrar',
:ssl_issuer => 'SSL Issuer',
:ssl_type => 'Certificate Type',
}
output.each do |kind, summary_data|
keys = []
values = []
summary_data.sort { |a,b| a[1] <=> b[1] }.each do |k,v|
keys.push(Name.new.full(k))
values.push(v)
end
output[kind] = Gchart.pie(:size => '400x200',
# :background => 'F8ECDC',
:bar_color => ['CFF09E','A8DBA8','79BD9A','3B8686','0B486B'],
:color => '',
:title => full_name[kind],
:labels => keys,
:data => values
)
end
charts = []
types.each do |kind|
charts.push( {:kind => kind, :url => output[kind] } )
end
puts ERB.new(File.read("view/html")).result
================================================
FILE: public/quantcast.html
================================================
================================================
FILE: public/sorttable.js
================================================
/*
SortTable
version 2
7th April 2007
Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
Instructions:
Download this file
Add <script src="sorttable.js"></script> to your HTML
Add class="sortable" to any table you'd like to make sortable
Click on the headers to sort
Thanks to many, many people for contributions and suggestions.
Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
This basically means: do what you want with it.
*/
var stIsIE = /*@cc_on!@*/false;
sorttable = {
init: function() {
// quit if this function has already been called
if (arguments.callee.done) return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// kill the timer
if (_timer) clearInterval(_timer);
if (!document.createElement || !document.getElementsByTagName) return;
sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
forEach(document.getElementsByTagName('table'), function(table) {
if (table.className.search(/\bsortable\b/) != -1) {
sorttable.makeSortable(table);
}
});
},
makeSortable: function(table) {
if (table.getElementsByTagName('thead').length == 0) {
// table doesn't have a tHead. Since it should have, create one and
// put the first table row in it.
the = document.createElement('thead');
the.appendChild(table.rows[0]);
table.insertBefore(the,table.firstChild);
}
// Safari doesn't support table.tHead, sigh
if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
if (table.tHead.rows.length != 1) return; // can't cope with two header rows
// Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
// "total" rows, for example). This is B&R, since what you're supposed
// to do is put them in a tfoot. So, if there are sortbottom rows,
// for backwards compatibility, move them to tfoot (creating it if needed).
sortbottomrows = [];
for (var i=0; i<table.rows.length; i++) {
if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
sortbottomrows[sortbottomrows.length] = table.rows[i];
}
}
if (sortbottomrows) {
if (table.tFoot == null) {
// table doesn't have a tfoot. Create one.
tfo = document.createElement('tfoot');
table.appendChild(tfo);
}
for (var i=0; i<sortbottomrows.length; i++) {
tfo.appendChild(sortbottomrows[i]);
}
delete sortbottomrows;
}
// work through each column and calculate its type
headrow = table.tHead.rows[0].cells;
for (var i=0; i<headrow.length; i++) {
// manually override the type with a sorttable_type attribute
if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
if (mtch) { override = mtch[1]; }
if (mtch && typeof sorttable["sort_"+override] == 'function') {
headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
} else {
headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
}
// make it clickable to sort
headrow[i].sorttable_columnindex = i;
headrow[i].sorttable_tbody = table.tBodies[0];
dean_addEvent(headrow[i],"click", function(e) {
if (this.className.search(/\bsorttable_sorted\b/) != -1) {
// if we're already sorted by this column, just
// reverse the table, which is quicker
sorttable.reverse(this.sorttable_tbody);
this.className = this.className.replace('sorttable_sorted',
'sorttable_sorted_reverse');
this.removeChild(document.getElementById('sorttable_sortfwdind'));
sortrevind = document.createElement('span');
sortrevind.id = "sorttable_sortrevind";
sortrevind.innerHTML = stIsIE ? ' <font face="webdings">5</font>' : ' ▴';
this.appendChild(sortrevind);
return;
}
if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
// if we're already sorted by this column in reverse, just
// re-reverse the table, which is quicker
sorttable.reverse(this.sorttable_tbody);
this.className = this.className.replace('sorttable_sorted_reverse',
'sorttable_sorted');
this.removeChild(document.getElementById('sorttable_sortrevind'));
sortfwdind = document.createElement('span');
sortfwdind.id = "sorttable_sortfwdind";
sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
this.appendChild(sortfwdind);
return;
}
// remove sorttable_sorted classes
theadrow = this.parentNode;
forEach(theadrow.childNodes, function(cell) {
if (cell.nodeType == 1) { // an element
cell.className = cell.className.replace('sorttable_sorted_reverse','');
cell.className = cell.className.replace('sorttable_sorted','');
}
});
sortfwdind = document.getElementById('sorttable_sortfwdind');
if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
sortrevind = document.getElementById('sorttable_sortrevind');
if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
this.className += ' sorttable_sorted';
sortfwdind = document.createElement('span');
sortfwdind.id = "sorttable_sortfwdind";
sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
this.appendChild(sortfwdind);
// build an array to sort. This is a Schwartzian transform thing,
// i.e., we "decorate" each row with the actual sort key,
// sort based on the sort keys, and then put the rows back in order
// which is a lot faster because you only do getInnerText once per row
row_array = [];
col = this.sorttable_columnindex;
rows = this.sorttable_tbody.rows;
for (var j=0; j<rows.length; j++) {
row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
}
/* If you want a stable sort, uncomment the following line */
//sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
/* and comment out this one */
row_array.sort(this.sorttable_sortfunction);
tb = this.sorttable_tbody;
for (var j=0; j<row_array.length; j++) {
tb.appendChild(row_array[j][1]);
}
delete row_array;
});
}
}
},
guessType: function(table, column) {
// guess the type of a column based on its first non-blank row
sortfn = sorttable.sort_alpha;
for (var i=0; i<table.tBodies[0].rows.length; i++) {
text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
if (text != '') {
if (text.match(/^-?[$]?[\d,.]+%?$/)) {
return sorttable.sort_numeric;
}
// check for a date: dd/mm/yyyy or dd/mm/yy
// can have / or . or - as separator
// can be mm/dd as well
possdate = text.match(sorttable.DATE_RE)
if (possdate) {
// looks like a date
first = parseInt(possdate[1]);
second = parseInt(possdate[2]);
if (first > 12) {
// definitely dd/mm
return sorttable.sort_ddmm;
} else if (second > 12) {
return sorttable.sort_mmdd;
} else {
// looks like a date, but we can't tell which, so assume
// that it's dd/mm (English imperialism!) and keep looking
sortfn = sorttable.sort_ddmm;
}
}
}
}
return sortfn;
},
getInnerText: function(node) {
// gets the text we want to use for sorting for a cell.
// strips leading and trailing whitespace.
// this is *not* a generic getInnerText function; it's special to sorttable.
// for example, you can override the cell text with a customkey attribute.
// it also gets .value for <input> fields.
hasInputs = (typeof node.getElementsByTagName == 'function') &&
node.getElementsByTagName('input').length;
if (node.getAttribute("sorttable_customkey") != null) {
return node.getAttribute("sorttable_customkey");
}
else if (typeof node.textContent != 'undefined' && !hasInputs) {
return node.textContent.replace(/^\s+|\s+$/g, '');
}
else if (typeof node.innerText != 'undefined' && !hasInputs) {
return node.innerText.replace(/^\s+|\s+$/g, '');
}
else if (typeof node.text != 'undefined' && !hasInputs) {
return node.text.replace(/^\s+|\s+$/g, '');
}
else {
switch (node.nodeType) {
case 3:
if (node.nodeName.toLowerCase() == 'input') {
return node.value.replace(/^\s+|\s+$/g, '');
}
case 4:
return node.nodeValue.replace(/^\s+|\s+$/g, '');
break;
case 1:
case 11:
var innerText = '';
for (var i = 0; i < node.childNodes.length; i++) {
innerText += sorttable.getInnerText(node.childNodes[i]);
}
return innerText.replace(/^\s+|\s+$/g, '');
break;
default:
return '';
}
}
},
reverse: function(tbody) {
// reverse the rows in a tbody
newrows = [];
for (var i=0; i<tbody.rows.length; i++) {
newrows[newrows.length] = tbody.rows[i];
}
for (var i=newrows.length-1; i>=0; i--) {
tbody.appendChild(newrows[i]);
}
delete newrows;
},
/* sort functions
each sort function takes two parameters, a and b
you are comparing a[0] and b[0] */
sort_numeric: function(a,b) {
aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
if (isNaN(aa)) aa = 0;
bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
if (isNaN(bb)) bb = 0;
return aa-bb;
},
sort_alpha: function(a,b) {
if (a[0]==b[0]) return 0;
if (a[0]<b[0]) return -1;
return 1;
},
sort_ddmm: function(a,b) {
mtch = a[0].match(sorttable.DATE_RE);
y = mtch[3]; m = mtch[2]; d = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt1 = y+m+d;
mtch = b[0].match(sorttable.DATE_RE);
y = mtch[3]; m = mtch[2]; d = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt2 = y+m+d;
if (dt1==dt2) return 0;
if (dt1<dt2) return -1;
return 1;
},
sort_mmdd: function(a,b) {
mtch = a[0].match(sorttable.DATE_RE);
y = mtch[3]; d = mtch[2]; m = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt1 = y+m+d;
mtch = b[0].match(sorttable.DATE_RE);
y = mtch[3]; d = mtch[2]; m = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt2 = y+m+d;
if (dt1==dt2) return 0;
if (dt1<dt2) return -1;
return 1;
},
shaker_sort: function(list, comp_func) {
// A stable sort function to allow multi-level sorting of data
// see: http://en.wikipedia.org/wiki/Cocktail_sort
// thanks to Joseph Nahmias
var b = 0;
var t = list.length - 1;
var swap = true;
while(swap) {
swap = false;
for(var i = b; i < t; ++i) {
if ( comp_func(list[i], list[i+1]) > 0 ) {
var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
swap = true;
}
} // for
t--;
if (!swap) break;
for(var i = t; i > b; --i) {
if ( comp_func(list[i], list[i-1]) < 0 ) {
var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
swap = true;
}
} // for
b++;
} // while(swap)
}
}
/* ******************************************************************
Supporting functions: bundled here to avoid depending on a library
****************************************************************** */
// Dean Edwards/Matthias Miller/John Resig
/* for Mozilla/Opera9 */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", sorttable.init, false);
}
/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
sorttable.init(); // call the onload handler
}
};
/*@end @*/
/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
sorttable.init(); // call the onload handler
}
}, 10);
}
/* for other browsers */
window.onload = sorttable.init;
// written by Dean Edwards, 2005
// with input from Tino Zijdel, Matthias Miller, Diego Perini
// http://dean.edwards.name/weblog/2005/10/add-event/
function dean_addEvent(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else {
// assign each event handler a unique ID
if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
// create a hash table of event types for the element
if (!element.events) element.events = {};
// create a hash table of event handlers for each element/event pair
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
// store the existing event handler (if there is one)
if (element["on" + type]) {
handlers[0] = element["on" + type];
}
}
// store the event handler in the hash table
handlers[handler.$$guid] = handler;
// assign a global event handler to do all the work
element["on" + type] = handleEvent;
}
};
// a counter used to create unique IDs
dean_addEvent.guid = 1;
function removeEvent(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else {
// delete the event handler from the hash table
if (element.events && element.events[type]) {
delete element.events[type][handler.$$guid];
}
}
};
function handleEvent(event) {
var returnValue = true;
// grab the event object (IE uses a global event object)
event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
// get a reference to the hash table of event handlers
var handlers = this.events[event.type];
// execute each event handler
for (var i in handlers) {
this.$$handleEvent = handlers[i];
if (this.$$handleEvent(event) === false) {
returnValue = false;
}
}
return returnValue;
};
function fixEvent(event) {
// add W3C standard event methods
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
return event;
};
fixEvent.preventDefault = function() {
this.returnValue = false;
};
fixEvent.stopPropagation = function() {
this.cancelBubble = true;
}
// Dean's forEach: http://dean.edwards.name/base/forEach.js
/*
forEach, version 1.0
Copyright 2006, Dean Edwards
License: http://www.opensource.org/licenses/mit-license.php
*/
// array-like enumeration
if (!Array.forEach) { // mozilla already supports this
Array.forEach = function(array, block, context) {
for (var i = 0; i < array.length; i++) {
block.call(context, array[i], i, array);
}
};
}
// generic enumeration
Function.prototype.forEach = function(object, block, context) {
for (var key in object) {
if (typeof this.prototype[key] == "undefined") {
block.call(context, object[key], key, object);
}
}
};
// character enumeration
String.forEach = function(string, block, context) {
Array.forEach(string.split(""), function(chr, index) {
block.call(context, chr, index, string);
});
};
// globally resolve forEach enumeration
var forEach = function(object, block, context) {
if (object) {
var resolve = Object; // default
if (object instanceof Function) {
// functions have a "length" property
resolve = Function;
} else if (object.forEach instanceof Function) {
// the object implements a custom forEach method so use that
object.forEach(block, context);
return;
} else if (typeof object == "string") {
// the object is a string
resolve = String;
} else if (typeof object.length == "number") {
// the object is array-like
resolve = Array;
}
resolve.forEach(object, block, context);
}
};
================================================
FILE: public/style.css
================================================
/*
CSS from:
http://fluidmind.org/test/css/tables.html
Colour pallete inspired by:
http://www.colourlovers.com/palette/580974/Adrift_in_Dreams
*/
div#data {
margin-left: 5%;
margin-right: 5%;
}
body {
text-align: center;
}
table {
width: 100%;
border-spacing: 0px;
border-collapse: collapse;
border-top: 4px solid #3B8686;
border-bottom: 1px solid #3B8686;
margin-top: 40px;
font-size: 0.8em;
}
table th {
text-align: left;
padding: 0.2em 0.5em;
border-top: 1px dotted #3B8686;
font-family: Arial;
text-transform: uppercase;
}
table td {
text-align: right;
border-top: 1px dotted #3B8686;
padding: 0.2em 0.5em;
/* color: #475258; */
color: #353535;
}
table thead th {
text-align: center;
font-weight: bold;
border-bottom: 1px solid #3B8686;
}
div#note {
margin: 10px;
font-family: Arial;
font-size: 0.6em;
color: lightgrey;
}
div#note a {
color: lightgrey;
}
================================================
FILE: quantcast.html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Quantcast Top 100</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="author" content="Joel Franusic" />
<link rel="stylesheet" href="public/style.css" media="screen,projection" type="text/css" />
<script src="public/sorttable.js"></script>
</head>
<body>
<div id="container">
<h1>Chart of Quantcast Top 100 companies' hosting decisions, 2011 edition</h1>
<div id="note">
Generated by <a href="https://github.com/jpf">Joel</a> on 2013-01-02 using his <a href="http://github.com/jpf/domain-profiler/tree/master">domain-profiler</a> software. Patches welcome.
</div>
<div id="charts">
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:CCDh9&chl=SoftLayer|Google|Microsoft|Self+Hosted|Other+%2F+Self+Hosted&chtt=Web+Host&cht=p&chs=400x200&chxr=0,3,81"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:EJMMy9&chl=None|Microsoft|Google|Google+%28Postini%29|Other+%2F+Self+Hosted|Self+Hosted&chtt=Email+Host&cht=p&chs=400x200&chxr=0,3,44"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:EELOX29&chl=Google|Microsoft|Akamai|Neustar+%28UltraDNS%29|Dyn+Inc|Self+Hosted|Other+%2F+Self+Hosted&chtt=DNS+Host&cht=p&chs=400x200&chxr=0,3,42"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:GNNPa9&chl=Go+Daddy|Other+%2F+Self+Hosted|Melbourne+IT|Network+Solutions|Corporation+Service+Company|MarkMonitor&chtt=Registrar&cht=p&chs=400x200&chxr=0,5,45"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:EEEGGJbh9&chl=Self+Hosted|GeoTrust|Verizon+%28Cybertrust%29|DigiCert|Comodo+Group|Go+Daddy|Other+%2F+Self+Hosted|VeriSign|None&chtt=SSL+Issuer&cht=p&chs=400x200&chxr=0,3,39"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:Z19&chl=star|None|normal&chtt=Certificate+Type&cht=p&chs=400x200&chxr=0,18,44"/>
</div>
<div id="data">
<table class="sortable" border="1">
<tr>
<th>Domain</th>
<th>Web Host</th>
<th>Email Host</th>
<th>DNS Host</th>
<th>Registrar</th>
<th>SSL Issuer</th>
<th>Certificate Type</th>
</tr>
<tr>
<td>google.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>Self Hosted</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>yahoo.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>Equifax</td>
<td>"www.yahoo.com"</td>
</tr>
<tr>
<td>msn.com</td>
<td>Microsoft</td>
<td>"hotmail.com"</td>
<td>Microsoft</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>facebook.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"www.facebook.com"</td>
</tr>
<tr>
<td>live.com</td>
<td>Microsoft</td>
<td>"hotmail.com"</td>
<td>Microsoft</td>
<td>Corporation Service Company</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>youtube.com</td>
<td>Google</td>
<td>Google</td>
<td>Google</td>
<td>MarkMonitor</td>
<td>"Google Inc"</td>
<td>"*.google.fi"</td>
</tr>
<tr>
<td>microsoft.com</td>
<td>Self Hosted</td>
<td>"outlook.com", Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>wikipedia.org</td>
<td>"Wikimedia US network"</td>
<td>"wikimedia.org"</td>
<td>"wikimedia.org"</td>
<td>MarkMonitor</td>
<td>DigiCert</td>
<td>"*.wikipedia.org"</td>
</tr>
<tr>
<td>myspace.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>"cotdns.net"</td>
<td>Network Solutions</td>
<td>"GlobalSign"</td>
<td>"*.myspace.com"</td>
</tr>
<tr>
<td>ebay.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"spages.half.ebay.com"</td>
</tr>
<tr>
<td>aol.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>craigslist.org</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>"Network Solutions, LLC"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>blogspot.com</td>
<td>Google</td>
<td>None</td>
<td>Google</td>
<td>MarkMonitor</td>
<td>"Google Inc"</td>
<td>"*.blogger.com"</td>
</tr>
<tr>
<td>ask.com</td>
<td>"NTT America, Inc.", "IAC Search & Media Inc"</td>
<td>Google (Postini)</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>amazon.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Dyn Inc, Neustar (UltraDNS)</td>
<td>Network Solutions</td>
<td>VeriSign</td>
<td>"www.amazon.com"</td>
</tr>
<tr>
<td>mapquest.com</td>
<td>AOL</td>
<td>AOL</td>
<td>AOL</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>about.com</td>
<td>Self Hosted</td>
<td>Google (Postini)</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>answers.com</td>
<td>"C7 Data Centers, Inc.", Self Hosted</td>
<td>Google (Postini)</td>
<td>Dyn Inc</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>adobe.com</td>
<td>Self Hosted</td>
<td>Google (Postini), Self Hosted</td>
<td>Self Hosted</td>
<td>Melbourne IT</td>
<td>VeriSign</td>
<td>"www.adobe.com"</td>
</tr>
<tr>
<td>wordpress.com</td>
<td>"Peer 1 Network Inc.", "Layered Technologies, Inc."</td>
<td>"automattic.com"</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>Go Daddy</td>
<td>"wordpress.com"</td>
</tr>
<tr>
<td>windows.com</td>
<td>Microsoft</td>
<td>Self Hosted</td>
<td>Microsoft</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>photobucket.com</td>
<td>Self Hosted</td>
<td>Google (Postini)</td>
<td>Dyn Inc</td>
<td>Register.com</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bing.com</td>
<td>Microsoft</td>
<td>Microsoft</td>
<td>"msedge.net"</td>
<td>MarkMonitor</td>
<td>None</td>
<td>"bing.com"</td>
</tr>
<tr>
<td>walmart.com</td>
<td>Self Hosted, "nLayer Communications, Inc."</td>
<td>"pphosted.com"</td>
<td>"ultradns.biz", Neustar (UltraDNS), "ultradns.com"</td>
<td>Melbourne IT</td>
<td>VeriSign</td>
<td>"www.walmart.com"</td>
</tr>
<tr>
<td>twitter.com</td>
<td>Self Hosted</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Melbourne IT</td>
<td>VeriSign</td>
<td>"twitter.com"</td>
</tr>
<tr>
<td>paypal.com</td>
<td>"nLayer Communications, Inc.", "eBay, Inc"</td>
<td>"ebay.com"</td>
<td>"isc-sns.net", "isc-sns.com", "isc-sns.info"</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"paypal.com"</td>
</tr>
<tr>
<td>go.com</td>
<td>"Disney Online"</td>
<td>"hostedemail.com"</td>
<td>"dig.com"</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>att.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"att.com"</td>
</tr>
<tr>
<td>imdb.com</td>
<td>Amazon</td>
<td>Amazon</td>
<td>Neustar (UltraDNS)</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>reference.com</td>
<td>"NTT America, Inc.", "IAC Search & Media Inc"</td>
<td>Google (Postini)</td>
<td>"ask.com"</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>flickr.com</td>
<td>Yahoo!</td>
<td>Yahoo!</td>
<td>Yahoo!</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>blogger.com</td>
<td>Google</td>
<td>Google</td>
<td>Google</td>
<td>MarkMonitor</td>
<td>"Google Inc"</td>
<td>"*.blogger.com"</td>
</tr>
<tr>
<td>yellowpages.com</td>
<td>Self Hosted</td>
<td>Microsoft</td>
<td>Self Hosted</td>
<td>Moniker</td>
<td>DigiCert</td>
<td>"www.yellowpages.com"</td>
</tr>
<tr>
<td>cnn.com</td>
<td>"Turner Broadcasting"</td>
<td>"turner.com"</td>
<td>Dyn Inc, "timewarner.net"</td>
<td>Corporation Service Company</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>target.com</td>
<td>Self Hosted, "NTT America, Inc."</td>
<td>Self Hosted</td>
<td>"sprintlink.net", Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>simplyhired.com</td>
<td>"TCH Network Services"</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>MarkMonitor</td>
<td>Go Daddy</td>
<td>"*.simplyhired.com"</td>
</tr>
<tr>
<td>webmd.com</td>
<td>Self Hosted</td>
<td>Microsoft</td>
<td>Dyn Inc</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>comcast.net</td>
<td>"NTT America, Inc.", Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"secure.comcast.net"</td>
</tr>
<tr>
<td>weather.com</td>
<td>"NTT America, Inc.", Self Hosted</td>
<td>Microsoft</td>
<td>Self Hosted</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>eonline.com</td>
<td>"NTT America, Inc.", "E! Networks"</td>
<td>"comcastnets.com"</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bankofamerica.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>"bac.com"</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"bankofamerica.com"</td>
</tr>
<tr>
<td>apple.com</td>
<td>Self Hosted, "nLayer Communications, Inc."</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>"Entrust, Inc."</td>
<td>"apple.com"</td>
</tr>
<tr>
<td>chase.com</td>
<td>Self Hosted</td>
<td>"messagelabs.com"</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"www.chase.com"</td>
</tr>
<tr>
<td>cnet.com</td>
<td>"SportsLine USA Inc."</td>
<td>Self Hosted, "cbsi.com"</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>ehow.com</td>
<td>"nLayer Communications, Inc.", eNom</td>
<td>"demandmedia.com", "enom.com", Self Hosted</td>
<td>Akamai</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"*.ehow.com"</td>
</tr>
<tr>
<td>monster.com</td>
<td>"NTT America, Inc.", Self Hosted</td>
<td>"tmpw.net", Self Hosted</td>
<td>"tmpw.net"</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>whitepages.com</td>
<td>Self Hosted</td>
<td>"w3data.com"</td>
<td>Dyn Inc</td>
<td>Network Solutions</td>
<td>Network Solutions</td>
<td>"*.whitepages.com"</td>
</tr>
<tr>
<td>bizrate.com</td>
<td>"Global Telecom & Technology ASN", "Shopzilla, Inc."</td>
<td>"sprint.com"</td>
<td>"cotdns.net"</td>
<td>MarkMonitor</td>
<td>Go Daddy</td>
<td>"www.bizrate.com"</td>
</tr>
<tr>
<td>verizonwireless.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"verizonwireless.com"</td>
</tr>
<tr>
<td>ezinearticles.com</td>
<td>"SparkNET Corporation"</td>
<td>"sparknet.net"</td>
<td>"sparknet.net"</td>
<td>Tucows</td>
<td>"GeoTrust Inc"</td>
<td>"www.ezinearticles.com"</td>
</tr>
<tr>
<td>careerbuilder.com</td>
<td>Self Hosted</td>
<td>Microsoft</td>
<td>"cbjobs.net"</td>
<td>Corporation Service Company</td>
<td>GeoTrust</td>
<td>"api.careerbuilder.com"</td>
</tr>
<tr>
<td>hulu.com</td>
<td>"NTT America, Inc.", </td>
<td>"arsmtp.com"</td>
<td>Akamai</td>
<td>Corporation Service Company</td>
<td>Verizon (Cybertrust)</td>
<td>"a248.e.akamai.net"</td>
</tr>
<tr>
<td>digg.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>metacafe.com</td>
<td>Rackspace</td>
<td>"frontBridge.com"</td>
<td>Rackspace</td>
<td>Tucows</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bestbuy.com</td>
<td>"NTT America, Inc.", "TeliaNet Global Network"</td>
<td>Self Hosted</td>
<td>Akamai</td>
<td>MarkMonitor</td>
<td>Verizon (Cybertrust)</td>
<td>"a248.e.akamai.net"</td>
</tr>
<tr>
<td>usps.com</td>
<td>"AT&T Services, Inc."</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Network Solutions</td>
<td>Comodo Group</td>
<td>"*.usps.com"</td>
</tr>
<tr>
<td>comcast.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"www.comcast.com"</td>
</tr>
<tr>
<td>geocities.com</td>
<td>"Yahoo"</td>
<td>"yahoodns.net"</td>
<td>Yahoo!</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>revsci.net</td>
<td>"MFN - Metromedia Fiber Network"</td>
<td>None</td>
<td>Dyn Inc</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>wellsfargo.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted, "wf.com"</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"wellsfargo.com"</td>
</tr>
<tr>
<td>reuters.com</td>
<td>"SAVVIS-AS3561"</td>
<td>Self Hosted</td>
<td>"westgroup.net"</td>
<td>MarkMonitor</td>
<td>"MyCompany"</td>
<td>"localhost.localdomain"</td>
</tr>
<tr>
<td>expedia.com</td>
<td>Self Hosted, "nLayer Communications, Inc."</td>
<td>Self Hosted</td>
<td>Neustar (UltraDNS)</td>
<td>Corporation Service Company</td>
<td>"Entrust, Inc."</td>
<td>"*.expedia.com"</td>
</tr>
<tr>
<td>evite.com</td>
<td>"NTT America, Inc.", "IAC Search & Media Inc"</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>people.com</td>
<td>"NTT America, Inc.", "SAVVIS-AS3561"</td>
<td>"messagelabs.com"</td>
<td>Savvis</td>
<td>MarkMonitor</td>
<td>Comodo Group</td>
<td>"i2.timeinc.net"</td>
</tr>
<tr>
<td>merriam-webster.com</td>
<td>ATT, "Fiberpipe Inc."</td>
<td>"m-w.com"</td>
<td>"eb.com"</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>linkedin.com</td>
<td>Self Hosted, Internap</td>
<td>Self Hosted</td>
<td>Dyn Inc, Neustar (UltraDNS)</td>
<td>Network Solutions</td>
<td>"Thawte, Inc."</td>
<td>"linkedin.com"</td>
</tr>
<tr>
<td>netflix.com</td>
<td>Self Hosted</td>
<td>Microsoft</td>
<td>Neustar (UltraDNS)</td>
<td>MarkMonitor</td>
<td>"GeoTrust Inc."</td>
<td>"netflix.com"</td>
</tr>
<tr>
<td>hp.com</td>
<td>"Hewlett-Packard Company"</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"www.hp.com"</td>
</tr>
<tr>
<td>huffingtonpost.com</td>
<td>"NTT America, Inc.", AOL</td>
<td>Google</td>
<td>AOL, Neustar (UltraDNS)</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>tripadvisor.com</td>
<td>Self Hosted</td>
<td>"arsmtp.com"</td>
<td>Dyn Inc, Neustar (UltraDNS)</td>
<td>Corporation Service Company</td>
<td>"Thawte, Inc."</td>
<td>"*.tripadvisor.com"</td>
</tr>
<tr>
<td>examiner.com</td>
<td>"WebNX"</td>
<td>Google</td>
<td>Neustar (UltraDNS)</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.examiner.com"</td>
</tr>
<tr>
<td>nytimes.com</td>
<td>"The New York Times Company"</td>
<td>Google (Postini)</td>
<td>Self Hosted, "about.com"</td>
<td>Melbourne IT</td>
<td>GeoTrust</td>
<td>"*.nytimes.com"</td>
</tr>
<tr>
<td>mtv.com</td>
<td>"NTT America, Inc.", "Viacom Inc."</td>
<td>"viacom.com"</td>
<td>Neustar (UltraDNS)</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>ups.com</td>
<td>"UNITED PARCEL SERVICE", "nLayer Communications, Inc."</td>
<td>Self Hosted</td>
<td>ATT, "sprintlink.net", Self Hosted</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"www.ups.com"</td>
</tr>
<tr>
<td>jcpenney.com</td>
<td>Self Hosted, "nLayer Communications, Inc."</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>shopzilla.com</td>
<td>"tw telecom holdings, inc."</td>
<td>"sprint.com"</td>
<td>"cotdns.net"</td>
<td>MarkMonitor</td>
<td>Go Daddy</td>
<td>"www.shopzilla.com"</td>
</tr>
<tr>
<td>capitalone.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"www.capitalone.com"</td>
</tr>
<tr>
<td>tripod.com</td>
<td>"SAVVIS-AS3561"</td>
<td>Self Hosted</td>
<td>"lycos.com"</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>pandora.com</td>
<td>Self Hosted</td>
<td>Self Hosted, "savagebeast.com"</td>
<td>"verisigndns.com", Dyn Inc, Self Hosted</td>
<td>MarkMonitor</td>
<td>VeriSign</td>
<td>"www.pandora.com"</td>
</tr>
<tr>
<td>pogo.com</td>
<td>"Electronic Arts, Inc."</td>
<td>"frontbridge.com"</td>
<td>"ea.com"</td>
<td>Corporation Service Company</td>
<td>GeoTrust</td>
<td>"www.pogo.com"</td>
</tr>
<tr>
<td>verizon.com</td>
<td>"nLayer Communications, Inc.", Self Hosted</td>
<td>Self Hosted</td>
<td>Akamai, Self Hosted</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>sears.com</td>
<td>"nLayer Communications, Inc.", Self Hosted</td>
<td>None</td>
<td>Akamai, ATT</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"www.sears.com"</td>
</tr>
<tr>
<td>smarter.com</td>
<td>"Valueclick, Inc."</td>
<td>"vclk.net"</td>
<td>"mediaplex.com"</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>pronto.com</td>
<td>"IAC Search & Media Inc"</td>
<td>Google (Postini)</td>
<td>Self Hosted</td>
<td>MarkMonitor</td>
<td>Comodo Group</td>
<td>"*.pronto.com"</td>
</tr>
<tr>
<td>vzw.com</td>
<td>"Cellco Partnership DBA Verizon Wireless"</td>
<td>"verizonwireless.com"</td>
<td>"verizonwireless.com"</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>homedepot.com</td>
<td>"NTT America, Inc.", Self Hosted</td>
<td>Microsoft</td>
<td>Self Hosted</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"secure2.homedepot.com"</td>
</tr>
<tr>
<td>city-data.com</td>
<td>SoftLayer</td>
<td>Self Hosted</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>"Advameg, Inc."</td>
<td>"www.city-data.com"</td>
</tr>
<tr>
<td>dell.com</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>Safenames</td>
<td>Self Hosted</td>
<td>"www.dell.com"</td>
</tr>
<tr>
<td>nih.gov</td>
<td>"National Institutes of Health"</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>"Unknown"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>foxnews.com</td>
<td>"NTT America, Inc.", "Global Crossing Ltd."</td>
<td>Self Hosted</td>
<td>Akamai</td>
<td>MarkMonitor</td>
<td>Verizon (Cybertrust)</td>
<td>"a248.e.akamai.net"</td>
</tr>
<tr>
<td>ign.com</td>
<td>"NTT America, Inc.", Self Hosted</td>
<td>"outlook.com"</td>
<td>Dyn Inc</td>
<td>MarkMonitor</td>
<td>Self Hosted</td>
<td>"redirect.ign.com"</td>
</tr>
<tr>
<td>lowes.com</td>
<td>"nLayer Communications, Inc.", "Verizon Online LLC"</td>
<td>Self Hosted</td>
<td>Akamai</td>
<td>Corporation Service Company</td>
<td>"Entrust, Inc."</td>
<td>"*.know-where.com"</td>
</tr>
<tr>
<td>wunderground.com</td>
<td>"Weather Underground Inc."</td>
<td>Self Hosted</td>
<td>"cogentco.com", Self Hosted</td>
<td>Network Solutions</td>
<td>Go Daddy</td>
<td>"www.wunderground.com"</td>
</tr>
<tr>
<td>usatoday.com</td>
<td>"Gannett Co. Inc.", "NTT America, Inc."</td>
<td>Google (Postini)</td>
<td>"gannett.com"</td>
<td>MarkMonitor</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>scribd.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.scribd.com"</td>
</tr>
<tr>
<td>typepad.com</td>
<td>"SAY Media, Inc"</td>
<td>Self Hosted</td>
<td>"saymedia.com"</td>
<td>"ASCIO TECHNOLOGIES, INC."</td>
<td>"GeoTrust Inc."</td>
<td>"www.typepad.com"</td>
</tr>
<tr>
<td>twitpic.com</td>
<td>SoftLayer</td>
<td>Self Hosted</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>"Thawte, Inc."</td>
<td>"twitpic.com"</td>
</tr>
<tr>
<td>usmagazine.com</td>
<td>"NTT America, Inc.", "The New York Internet Company"</td>
<td>"outlook.com", Self Hosted</td>
<td>"cscdns.net"</td>
<td>Corporation Service Company</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>ticketmaster.com</td>
<td>"nLayer Communications, Inc.", "Live Nation Entertainment, Inc.", Self Hosted</td>
<td>Self Hosted</td>
<td>Akamai</td>
<td>Corporation Service Company</td>
<td>VeriSign</td>
<td>"www.ticketmaster.com"</td>
</tr>
<tr>
<td>dailymotion.com</td>
<td>Self Hosted</td>
<td>"outlook.com"</td>
<td>Self Hosted</td>
<td>"MAILCLUB SAS"</td>
<td>DigiCert</td>
<td>"*.dailymotion.com"</td>
</tr>
</table>
</div>
</div><!-- container -->
</body>
</html>
================================================
FILE: spec/dns/dns_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/dns'
describe DNS do
before(:all) do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/dns.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
end
it "can return an SPF record" do
@dns.spf[0].should == 'v=spf1 include:_netblocks.google.com ~all'
end
it "knows what the 'answer' is for the NS record" do
@dns.ns[0].answer.should == 'ns1.google.com.'
end
it "knows what the 'answer' is for the MX record" do
@dns.mx[0].answer.should == '10 smtp1.google.com.'
end
it "knows what the host part of the MX record is" do
@dns.mx[0].host.should == 'smtp1.google.com.'
end
it "knows what the priority is for the MX record" do
@dns.mx[0].priority.should == '10'
end
it "knows what the 'answer' is for the A record" do
@dns.a[0].answer.should == '74.125.127.100'
end
it "knows what the TTL is for the A record" do
@dns.a[0].ttl.should == '132'
end
it "knows what the query was for the A record" do
@dns.a[0].query.should == 'google.com.'
end
it "DNSType is able to deal with empty input" do
empty = DNSType.new('')
empty.ttl.should == :none
end
it "DNSType is able to deal with nil input" do
empty = DNSType.new(nil)
empty.ttl.should == :none
end
it "DNSQuery is able to deal with empty input" do
empty = DNSQuery.new('')
empty.a.should.is_a?(DNSType) == true
end
it "DNSQuery is able to deal with nil input" do
empty = DNSQuery.new(nil)
empty.a.should.is_a?(DNSType) == true
end
it " is able to deal with empty input" do
empty = DNS.new
empty.parse('')
empty.a[0].ttl.should == :none
end
it "is able to deal with nil input" do
empty = DNS.new
empty.parse(nil)
empty.a[0].ttl.should == :none
end
it "is able to deal with missing MX records" do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/furbo.org.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
@dns.mx[0].host.should == :none
end
it "is able to deal with data from go.com" do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/go.com.raw.dump')
data = `cat #{filename}`
@dns = DNS.new
@dns.parse(data)
@dns.a[0].answer.should == '198.105.193.70'
end
end
================================================
FILE: spec/dns/fixtures/dns.raw.dump
================================================
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns google.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51169
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN NS
;; ANSWER SECTION:
google.com. 1735 IN NS ns3.google.com.
google.com. 1735 IN NS ns1.google.com.
google.com. 1735 IN NS ns4.google.com.
google.com. 1735 IN NS ns2.google.com.
;; Query time: 14 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Jul 7 23:13:56 2009
;; MSG SIZE rcvd: 100
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 a google.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52929
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 132 IN A 74.125.127.100
google.com. 132 IN A 74.125.45.100
google.com. 132 IN A 74.125.67.100
;; Query time: 14 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Jul 7 23:13:56 2009
;; MSG SIZE rcvd: 76
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 mx google.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28506
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN MX
;; ANSWER SECTION:
google.com. 9016 IN MX 10 smtp3.google.com.
google.com. 9016 IN MX 10 smtp4.google.com.
google.com. 9016 IN MX 10 smtp1.google.com.
google.com. 9016 IN MX 10 smtp2.google.com.
;; Query time: 10 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Jul 7 23:13:56 2009
;; MSG SIZE rcvd: 116
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 txt google.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26279
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN TXT
;; ANSWER SECTION:
google.com. 1145 IN TXT "v=spf1 include:_netblocks.google.com ~all"
;; Query time: 15 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Jul 7 23:13:56 2009
;; MSG SIZE rcvd: 82
================================================
FILE: spec/dns/fixtures/ehow.com.raw.dump
================================================
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns ehow.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10652
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ehow.com. IN NS
;; ANSWER SECTION:
ehow.com. 3493 IN NS ns2.demandmedia.com.
ehow.com. 3493 IN NS ns1.demandmedia.com.
;; Query time: 24 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Jul 27 00:18:55 2009
;; MSG SIZE rcvd: 74
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 a ehow.com
; (1 server found)
;; global options: printcmd
;; connection timed out; no servers could be reached
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 mx ehow.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 48740
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ehow.com. IN MX
;; Query time: 3291 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Jul 27 00:19:13 2009
;; MSG SIZE rcvd: 26
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 txt ehow.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25289
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ehow.com. IN TXT
;; Query time: 1337 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Jul 27 00:19:14 2009
;; MSG SIZE rcvd: 26
================================================
FILE: spec/dns/fixtures/furbo.org.raw.dump
================================================
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns furbo.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34784
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;furbo.org.
;; ANSWER SECTION:
furbo.org.
3600
ns03.domaincontrol.com.
furbo.org.
3600
ns04.domaincontrol.com.
;; Query time: 115 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Fri Jul 10 14:52:56 2009
;; MSG SIZE rcvd: 82
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 a furbo.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36711
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;furbo.org.
;; ANSWER SECTION:
furbo.org.
3600
38.103.165.12
;; Query time: 36 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Fri Jul 10 14:52:56 2009
;; MSG SIZE rcvd: 43
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 mx furbo.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35991
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;furbo.org.
;; AUTHORITY SECTION:
furbo.org.
ns03.domaincontrol.com. dns.jomax.net. 2007101000 28800 7200 604800 86400
;; Query time: 34 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Fri Jul 10 14:52:57 2009
;; MSG SIZE rcvd: 98
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 txt furbo.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40542
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;furbo.org.
;; AUTHORITY SECTION:
furbo.org.
ns03.domaincontrol.com. dns.jomax.net. 2007101000 28800 7200 604800 86400
;; Query time: 33 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Fri Jul 10 14:52:57 2009
;; MSG SIZE rcvd: 98
================================================
FILE: spec/dns/fixtures/go.com.raw.dump
================================================
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns go.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37998
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;go.com. IN NS
;; ANSWER SECTION:
go.com. 43200 IN NS sens02.dig.com.
go.com. 43200 IN NS orns02.dig.com.
go.com. 43200 IN NS sens01.dig.com.
go.com. 43200 IN NS orns01.dig.com.
;; Query time: 183 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Sun Jul 26 23:51:07 2009
;; MSG SIZE rcvd: 112
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 a go.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22676
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;go.com. IN A
;; ANSWER SECTION:
go.com. 1800 IN A 198.105.193.70
;; Query time: 42 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Sun Jul 26 23:51:07 2009
;; MSG SIZE rcvd: 40
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 mx go.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3802
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;go.com. IN MX
;; ANSWER SECTION:
go.com. 1800 IN MX 0 mx.go.com.cust.b.hostedemail.com.
;; Query time: 40 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Sun Jul 26 23:51:07 2009
;; MSG SIZE rcvd: 69
; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 txt go.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15361
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;go.com. IN TXT
;; AUTHORITY SECTION:
go.com. 900 IN SOA dns1.cp.msft.net. dns-ops.dig.com. 2009072302 3600 900 608400 1800
;; Query time: 34 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Sun Jul 26 23:51:07 2009
;; MSG SIZE rcvd: 88
================================================
FILE: spec/domain-profiler_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/spec_helper.rb')
require 'domain-profiler'
describe DomainProfiler do
it "has an orgname function that knows the orgname for 4.2.2.2" do
orgname('4.2.2.2').should == 'Level 3 Communications'
end
it "has an orgname function that can handle nil as input" do
orgname(nil).should == nil
end
it "has an orgname function that can handle an empty string ('') as input" do
orgname('').should == ''
end
it "has an orgname function that can handle a symbol as input" do
orgname(:monkey).should == :monkey
end
end
================================================
FILE: spec/ip-to-asn/ip-to-asn_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/ip-to-asn'
require 'ipaddr'
describe IPtoASN do
before(:all) do
@use_cache = false
@ip = IPtoASN.new('4.2.2.2',@use_cache)
end
## Peer
# BGP Origin ASN
# BGP Peer ASN
# BGP Prefix
## Origin
# Prefix Country Code (assigned)
# Prefix Registry (assigned)
# Prefix Allocation date
## ASN
# ASN Country Code (assigned)
# ASN Registry (assigned)
# ASN Allocation date
# ASN Description
# Origin
# Peer
# ASN
it "knows the ASN" do
@ip.origin.asn.should == '3356'
end
it "knows the BGP Prefix" do
@ip.origin.bgp_prefix.should == '4.0.0.0/9'
end
it "knows the Prefix Country Code" do
@ip.origin.country_code.should == 'US'
end
it "knows the Prefix Registry" do
@ip.origin.registry.should == 'arin'
end
it "knows the Prefix Allocation date" do
@ip.origin.allocation_date.should == '1992-12-01'
end
it "knows the ASN description" do
@ip.asn.description.should == 'LEVEL3 Level 3 Communications'
end
it "knows the ASN NetName" do
@ip.asn.netname.should == 'LEVEL3'
end
it "knows the ASN OrgName" do
@ip.asn.orgname.should == 'Level 3 Communications'
end
it "can properly parse different types of ASN descriptions into OrgNames and NetNames" do
l3 = IPtoASN.new('4.2.2.2',@use_cache)
l3.asn.orgname.should == 'Level 3 Communications'
l3.asn.netname.should == 'LEVEL3'
amz = IPtoASN.new('75.101.163.44',@use_cache)
amz.asn.orgname.should == 'Amazon.com, Inc.'
amz.asn.netname.should == 'AMAZON-AES'
end
end
================================================
FILE: spec/name/name_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/name'
describe Name do
tests = {
'dom' => 'dom',
'dom.' => 'dom',
'example.dom' => 'example.dom',
'example.dom.' => 'example.dom',
'www.example.dom' => 'example.dom',
'www.example.dom' => 'example.dom',
'ns1.example.dom' => 'example.dom',
'ns2.example.dom' => 'example.dom',
'ns1.ca.example.dom' => 'ca.example.dom',
}.sort
tests.each { |test|
k = test[0]
v = test[1]
it "correctly shortens '#{k}'" do
host = Name.new()
host.shorten(k).should == v
end
}
it "simplifies easydns.com, easydns.net, easydns.org to 'easydns'" do
host = Name.new()
["easydns.com", "easydns.net", "easydns.org"].each {|name|
host.simplify(name).should == :easydns
}
end
it "simplifies EASYDNS.COM to 'easydns'" do
host = Name.new()
host.simplify('EASYDNS.COM').should == :easydns
end
it "simplifies easydns.com to 'self' when the second option is 'easydns.net'" do
host = Name.new()
host.simplify('easydns.com','easydns.net').should == :self
end
it "simplifies google.com to 'self' when the second option is 'google.com'" do
host = Name.new()
host.simplify('google.com','google.com').should == :self
end
it "correctly handles an empty string as input" do
host = Name.new()
host.simplify('').should == ''
host.shorten('').should == ''
end
it "correctly handles nil as input" do
host = Name.new()
host.simplify(nil).should == nil
host.shorten(nil).should == nil
end
it "correctly handles :none as input" do
host = Name.new()
host.simplify(:none).should == :none
host.shorten(:none).should == :none
end
end
================================================
FILE: spec/rcov.opts
================================================
--exclude spec,gem
--text-summary
--spec-only
--sort coverage --sort-reverse
================================================
FILE: spec/spec.opts
================================================
--format specdoc
--colour
================================================
FILE: spec/spec_helper.rb
================================================
# encoding: UTF-8
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
require 'rubygems'
require 'domain-profiler'
================================================
FILE: spec/ssl/fixtures/openssl.raw.dump
================================================
depth=1 /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
verify error:num=20:unable to get local issuer certificate
verify return:0
CONNECTED(00000003)
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDITCCAoqgAwIBAgIQASo5dg0/T8kL570rz5UuejANBgkqhkiG9w0BAQUFADBM
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTAzMjcyMjIwMDdaFw0x
MDAzMjcyMjIwMDdaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRcw
FQYDVQQDEw53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEA1rnhrbhhCx9OtjwJPavo4yu26KQ6eC/TUSAiRZXYAJEzmqeiSOowVyaXZsda
7/GbDD/huX97w8fMr5zQHzyBFRBY/Aazv7ycArlR3PumuRdC5kbnIs9sJxD+VOaS
bAxgdprO+H+suFoIStyxZL2gdEGyrI+GnRreWAn9bAol4HkCAwEAAaOB5zCB5DAo
BgNVHSUEITAfBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEATA2BgNVHR8E
LzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlU0dDQ0EuY3Js
MHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3Rl
LmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3dGUuY29tL3JlcG9zaXRv
cnkvVGhhd3RlX1NHQ19DQS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUF
AAOBgQA5tvsRvDMsw5BI427DmzixQtEACVhjoOGYHIXy7xAdYE5RCWL1Bb2dT4ds
mHIHgMNZSBTi1u/QjzNqaDH6t7uFzPfHR3tnkzzDFlGbb4cg/WdMK+pqSdsR0b3X
lSJDegZ7TvY3jqK5zx+l0r07BJc5sw/6OLWvVSCIYJPy3tv/3w==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
---
No client certificate CA names sent
---
SSL handshake has read 1765 bytes and written 304 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
Session-ID: DFBA5390BB979D51A6090DF7259D94BA2C8BC5DF2351AB76F01CDE00732B0FA4
Session-ID-ctx:
Master-Key: 7AC127C6EFB7810C258CA8EA50051A71786116A9FD154F0C4D59DDE29F70C59A18782DC3908C2DFDDF31E66751671782
Key-Arg : None
Start Time: 1246948332
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
---
DONE
================================================
FILE: spec/ssl/fixtures/openssl.single.raw.dump
================================================
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
verify error:num=21:unable to verify the first certificate
verify return:1
CONNECTED(00000003)
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
i:/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDhjCCAu+gAwIBAgIQArJauA/0ymYP1R7n2/5RhTANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA4MDMwNzE3NDU1MVoXDTEwMDQwMzIwMDUzOVow
ZjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1v
dW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBJbmMxFTATBgNVBAMMDCouZ29v
Z2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwMCKHa65sFesTGX8
ngyOcogcgkeWC/cKl27IWJpSibl7eSxb8i7gX4Y50K04CU9y+CfDGr8W2mDTi7Lr
K6BNgyH7IcHG6rA5YOUKAuQ4Q4euRaoVurWoy4fFJvA8v+sHAMLrvgrHK/bvhTZt
kV8Exts9wqLvz/lKzMMOXOpOl7ECAwEAAaOByzCByDAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3
dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAk
MCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMCMGA1UdEQQcMBqC
Cmdvb2dsZS5jb22CDCouZ29vZ2xlLmNvbTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3
DQEBBQUAA4GBAJ5/HsuMsz4n9WtgZA3Dxh5gNfxFBibN3jMO73EUbMi96puRs5uL
vqed/46imiabc5K33JIH2jTeY223rDy3faNoycZ3xFIVDeG4bTfBvxVCT8bUWZZh
WVECHGjcrgUOSSX/zgQuE07Olxth5IkMfKWVFAHyRrw8owSvEbt036ZB
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
---
No client certificate CA names sent
---
SSL handshake has read 1056 bytes and written 304 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
Session-ID: CC33BAF5EC92D4067EAFEE77279E346B97FBCF66F8E376CC2F23674A6FF3A4E3
Session-ID-ctx:
Master-Key: A681DF66EA72BB098A9BB2FFF8B3CA24EACF038FE314D1D68C7AE85593D46F6FFE9BFBAA10C2878EE109DCBAFF73927D
Key-Arg : None
Start Time: 1247029835
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
DONE
================================================
FILE: spec/ssl/ssl_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/ssl'
describe SSL do
before (:all) do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/openssl.raw.dump')
data = `cat #{filename}`
@ssl = SSL.new
@ssl.parse(data)
end
it "knows the name of the certificate authority" do
@ssl.ca.should == ['Thawte Consulting (Pty) Ltd.']
end
it "knows the common name on the certificate" do
@ssl.cn.should == ['www.google.com']
end
it "knows when a certificate was issued/created" do
@ssl.created.should == ['Mar 27 22:20:07 2009 GMT']
end
it "knows when a certificate expires" do
@ssl.expires.should == ['Mar 27 22:20:07 2010 GMT']
end
it "knows the name of the certificate authority on a certificate with validation errors" do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/openssl.single.raw.dump')
data = `cat #{filename}`
ssl = SSL.new
ssl.parse(data)
ssl.ca.should == ['Thawte Consulting cc']
end
it "is able to deal with no data" do
empty = SSL.new
empty.ca.should == [:none]
empty.cn.should == [:none]
empty.expires.should == [:none]
end
it "is able to deal with an empty string as input" do
empty = SSL.new
empty.parse('')
empty.ca.should == [:none]
empty.cn.should == [:none]
empty.expires.should == [:none]
end
end
================================================
FILE: spec/whois/fixtures/furbo.org.raw.dump
================================================
NOTICE: Access to .ORG WHOIS information is provided to assist persons in
determining the contents of a domain name registration record in the Public Interest Registry
registry database. The data in this record is provided by Public Interest Registry
for informational purposes only, and Public Interest Registry does not guarantee its
accuracy. This service is intended only for query-based access. You agree
that you will use this data only for lawful purposes and that, under no
circumstances will you use this data to: (a) allow, enable, or otherwise
support the transmission by e-mail, telephone, or facsimile of mass
unsolicited, commercial advertising or solicitations to entities other than
the data recipient's own existing customers; or (b) enable high volume,
automated, electronic processes that send queries or data to the systems of
Registry Operator or any ICANN-Accredited Registrar, except as reasonably
necessary to register domain names or modify existing registrations. All
rights reserved. Public Interest Registry reserves the right to modify these terms at any
time. By submitting this query, you agree to abide by this policy.
Domain ID:D9317809-LROR
Domain Name:FURBO.ORG
Created On:21-Aug-1999 04:20:50 UTC
Last Updated On:23-Jun-2008 17:14:22 UTC
Expiration Date:21-Aug-2010 04:20:50 UTC
Sponsoring Registrar:GoDaddy.com, Inc. (R91-LROR)
Status:CLIENT DELETE PROHIBITED
Status:CLIENT RENEW PROHIBITED
Status:CLIENT TRANSFER PROHIBITED
Status:CLIENT UPDATE PROHIBITED
Registrant ID:GODA-07543406
Registrant Name:Craig Hockenberry
Registrant Organization:The Iconfactory
Registrant Street1:195 Cypress Drive
Registrant Street2:
Registrant Street3:
Registrant City:Laguna Beach
Registrant State/Province:California
Registrant Postal Code:92651
Registrant Country:US
Registrant Phone:+1.19494949464
Registrant Phone Ext.:
Registrant FAX:
Registrant FAX Ext.:
Registrant Email:craig@iconfactory.com
Admin ID:GODA-27543406
Admin Name:Craig Hockenberry
Admin Organization:The Iconfactory
Admin Street1:195 Cypress Drive
Admin Street2:
Admin Street3:
Admin City:Laguna Beach
Admin State/Province:California
Admin Postal Code:92651
Admin Country:US
Admin Phone:+1.19494949464
Admin Phone Ext.:
Admin FAX:
Admin FAX Ext.:
Admin Email:craig@iconfactory.com
Tech ID:GODA-17543406
Tech Name:Craig Hockenberry
Tech Organization:The Iconfactory
Tech Street1:195 Cypress Drive
Tech Street2:
Tech Street3:
Tech City:Laguna Beach
Tech State/Province:California
Tech Postal Code:92651
Tech Country:US
Tech Phone:+1.19494949464
Tech Phone Ext.:
Tech FAX:+1.9027495429
Tech FAX Ext.:
Tech Email:craig@iconfactory.com
Name Server:NS03.DOMAINCONTROL.COM
Name Server:NS04.DOMAINCONTROL.COM
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
================================================
FILE: spec/whois/fixtures/zombo.com.raw.dump
================================================
Whois Server Version 2.0
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
Domain Name: ZOMBO.COM
Registrar: NETWORK SOLUTIONS, LLC.
Whois Server: whois.networksolutions.com
Referral URL: http://www.networksolutions.com
Name Server: NS1.ZOMBO.COM
Name Server: NS2.ZOMBO.COM
Status: clientTransferProhibited
Updated Date: 19-sep-2006
Creation Date: 10-oct-1999
Expiration Date: 10-oct-2010
>>> Last update of whois database: Tue, 07 Jul 2009 04:50:15 UTC <<<
NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar. Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.
TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability. VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.
The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
NOTICE AND TERMS OF USE: You are not authorized to access or query our WHOIS
database through the use of high-volume, automated, electronic processes. The
Data in Network Solutions' WHOIS database is provided by Network Solutions for information
purposes only, and to assist persons in obtaining information about or related
to a domain name registration record. Network Solutions does not guarantee its accuracy.
By submitting a WHOIS query, you agree to abide by the following terms of use:
You agree that you may use this Data only for lawful purposes and that under no
circumstances will you use this Data to: (1) allow, enable, or otherwise support
the transmission of mass unsolicited, commercial advertising or solicitations
via e-mail, telephone, or facsimile; or (2) enable high volume, automated,
electronic processes that apply to Network Solutions (or its computer systems). The
compilation, repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of Network Solutions. You agree not to use
high-volume, automated, electronic processes to access or query the WHOIS
database. Network Solutions reserves the right to terminate your access to the WHOIS
database in its sole discretion, including without limitation, for excessive
querying of the WHOIS database or for failure to otherwise abide by this policy.
Network Solutions reserves the right to modify these terms at any time.
Get a FREE domain name registration, transfer, or renewal with any annual hosting package.
http://www.networksolutions.com
Visit AboutUs.org for more information about ZOMBO.COM
<a href="http://www.aboutus.org/ZOMBO.COM">AboutUs: ZOMBO.COM </a>
Registrant:
Zombocom
1079
Occidental, CA 95465
US
Domain Name: ZOMBO.COM
------------------------------------------------------------------------
Promote your business to millions of viewers for only $1 a month
Learn how you can get an Enhanced Business Listing here for your domain name.
Learn more at http://www.NetworkSolutions.com/
------------------------------------------------------------------------
Administrative Contact, Technical Contact:
Levine, Joshua ooaahh@YAHOO.COM
Zombocom
1079
Occidental, CA 95465
US
707-865-0449
Record expires on 10-Oct-2010.
Record created on 10-Oct-1999.
Database last updated on 7-Jul-2009 00:41:55 EDT.
Domain servers in listed order:
NS1.ZOMBO.COM 69.16.230.117
NS2.ZOMBO.COM 69.16.230.118
================================================
FILE: spec/whois/whois_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/whois'
describe Whois do
before (:all) do
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/zombo.com.raw.dump')
zombo_com_data = `cat #{filename}`
filename = File.expand_path(File.dirname(__FILE__) + '/fixtures/furbo.org.raw.dump')
furbo_org_data = `cat #{filename}`
@zombo = Whois.new
@zombo.parse(zombo_com_data)
@furbo = Whois.new
@furbo.parse(furbo_org_data)
end
it "knows the name of the registrar" do
@zombo.registrar.should == ['NETWORK SOLUTIONS, LLC.']
@furbo.registrar.should == ['GoDaddy.com, Inc.']
end
it "is able to deal with no data" do
whois = Whois.new
whois.registrar.should == ['Unknown']
end
it "is able to deal with nil input" do
whois = Whois.new
whois.parse(nil)
whois.registrar.should == ['Unknown']
end
it "is able to deal with empty string input" do
whois = Whois.new
whois.parse('')
whois.registrar.should == ['Unknown']
end
it "is able to deal with non-ASCII string input" do
whois = Whois.new
whois.parse("\xEA")
whois.registrar.should == ['Unknown']
end
it "knows when the domain expires" do
@zombo.expires.should == '10-oct-2010'
end
it "knows when the domain was created" do
@zombo.created.should == '10-oct-1999'
end
it "knows when the domain was updated" do
@zombo.updated.should == '19-sep-2006'
end
it "knows when the domain status" do
@zombo.status.should == 'clientTransferProhibited'
end
end
================================================
FILE: spec/whois-orgname/whois_spec.rb
================================================
# encoding: UTF-8
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
require 'domain-profiler/whois-orgname'
describe WhoisOrgName do
before (:all) do
@whois = WhoisOrgName.new('4.2.2.2', false)
end
it "is fetching information from ARIN" do
rv = @whois.grep(/available at:/)
rv.should == 'https://www.arin.net/whois_tou.html'
end
end
================================================
FILE: techstars-list
================================================
10sheet.com
27perry.com
accelgolf.com
adstruc.com
advertory.com
aireum.com
ampidea.com
app-x.com
appetas.com
appsembler.com
appswell.com
apptentive.com
atlas5d.com
baydin.com
beta.pivotdesk.com
betterfittechnologies.com
birdbox.com
bisonalternatives.com
bizible.com
blueboxnow.com
bondsy.com
bookingmarkets.com
brightkite.com
brightwurks.com
buyplaywin.com
captimo.com
careporthealth.com
chatid.com
classtivity.com
cloudability.com
cloudsnap.com
coachup.com
codiqa.com
conditionone.com
conductrics.com
contently.com
creativebrain.com
crowdtwist.com
dailyburn.com
datarobot.com
dealangel.com
dealcoop.com
devver.net
digitalocean.com
dispatch.io
distil.it
doctrackr.com
embarke.com
emergentone.com
epicplayground.com
eventvue.com
everlater.com
evertrue.com
everymove.org
fanzo.me
fashionproject.com
flexminder.com
flextrip.com
flixmaster.com
flomio.com
foodzie.com
freakngenius.com
fullcontact.com
gestsure.com
getambassador.com
getlua.com
getmarquee.com
getmealticket.com
ginger.io
gochime.com
gomiles.com
gosphero.com
gospotcheck.com
grabcad.com
graphicly.com
grouptalent.com
gympact.com
haikudeck.com
havemyshift.com
highlighter.com
immersivelabs.com
impulsesave.com
inboxfever.com
intensedebate.com
jintronix.com
jivesoftware.com
kapost.com
keen.io
kinvey.com
langolab.com
laveem.com
leanplum.com
lessonsmith.com
libboo.com
liftwave.com
likebright.com
linksy.me
litestack.com
localytics.com
lore.com
loudcaster.com
lumatic.com
madkast.com
mailana.com
manageup.com
manctl.com
marginize.com
memrise.com
metricshub.com
mobilligy.com
mobintent.com
mobiplug.co
mocavo.com
mogotest.com
monkeyanalytics.com
mortardata.com
moveline.com
murfie.com
nbdnano.com
nconnex.com
nestio.com
nextbigsound.com
nveloped.com
occipital.com
okdidit.com
oneforty.com
onswipe.com
onwander.com
ordr.in
ovuline.com
packetstash.com
peoplessoftware.com
piictu.com
placester.com
playq.net
poptip.com
precog.com
promoboxx.com
psykosoft.net
realtymogul.com
redroverhq.com
remitly.com
rentmatch.com
rentmonitor.com
reteltechnologies.com
rewardsforce.com
rewind.me
rezora.com
rollsale.com
romotive.com
roundpegg.com
roximity.com
salesloft.com
sandglaz.com
saverrapp.com
scriptpad.net
searchtophone.com
sendgrid.com
senexx.com
sensobi.com
shelby.tv
shopsy.com
shuttlecloud.com
sidetour.com
simpleenergy.com
simplygood.com
smallknot.com
smarketplaces.com
smorepages.com
snapengage.com
socedo.com
socialengine.com
socialsci.com
socialthing.com
sparkcloud.com
spillnow.com
spontaneously.com
spotinfluence.com
spryplanner.com
staq.io
starstreet.com
statsmix.com
stepout.com
stocktouch.com
strategic-blue.com
strohlmedical.com
styku.com
superb.ly
tempmine.com
tempo-db.com
testive.com
thehighwaygirl.com
thetaplab.com
thinkfuse.com
thinknear.com
timehop.com
toviefor.com
tredsite.com
truanttoday.com
trueability.com
tutorialtab.com
ubersense.com
ubi-interactive.com
ubooly.com
urtak.com
useframe.com
usermojo.com
usingmiles.com
vacationrentalpartner.com
vanillaforums.com
verbalizeit.com
veri.com
vidmaker.com
villij.com
vizify.com
voxon.co
wantworthy.com
worldblender.com
wymsee.com
yourkarma.com
zagster.com
zeppelin.co
ziptask.com
================================================
FILE: techstars.html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>TechStars startups</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="author" content="Joel Franusic" />
<link rel="stylesheet" href="public/style.css" media="screen,projection" type="text/css" />
<script src="public/sorttable.js"></script>
</head>
<body>
<div id="container">
<h1>TechStars</h1>
<div id="note">
Generated by <a href="https://github.com/jpf">Joel</a> on 2013-01-15 using his <a href="http://github.com/jpf/domain-profiler/tree/master">domain-profiler</a> software. Patches welcome.
</div>
<div id="charts">
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:DDFFIJZ29&chl=Microsoft|DNS+issue|Media+Temple|Google|Go+Daddy|SoftLayer|Rackspace|Other+%2F+Self+Hosted|Amazon&chtt=Web+Host&cht=p&chs=400x200&chxr=0,5,83"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:BCDG9&chl=Go+Daddy|None|Self+Hosted|Other+%2F+Self+Hosted|Google&chtt=Email+Host&cht=p&chs=400x200&chxr=0,5,185"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:EEGHKKfu9&chl=Media+Temple|CloudFlare|DNS+Made+Easy|Dyn+Inc|eNom|Rackspace|Amazon|Go+Daddy|Other+%2F+Self+Hosted&chtt=DNS+Host&cht=p&chs=400x200&chxr=0,6,78"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:EGTe9&chl=Network+Solutions|Name.com|eNom|Other+%2F+Self+Hosted|Go+Daddy&chtt=Registrar&cht=p&chs=400x200&chxr=0,8,112"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:MVYYY9&chl=Comodo+Group|Go+Daddy|Other+%2F+Self+Hosted|DigiCert|GeoTrust|None&chtt=SSL+Issuer&cht=p&chs=400x200&chxr=0,16,82"/>
<img src="http://chart.apis.google.com/chart?chco=CFF09E,A8DBA8,79BD9A,3B8686,0B486B&chd=s:p59&chl=normal|None|star&chtt=Certificate+Type&cht=p&chs=400x200&chxr=0,57,86"/>
</div>
<div id="data">
<table class="sortable" border="1">
<tr>
<th>Domain</th>
<th>Web Host</th>
<th>Email Host</th>
<th>DNS Host</th>
<th>Registrar</th>
<th>SSL Issuer</th>
<th>Certificate Type</th>
</tr>
<tr>
<td>10sheet.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"10sheet.com"</td>
</tr>
<tr>
<td>27perry.com</td>
<td>CloudFlare</td>
<td>Google</td>
<td>CloudFlare</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>accelgolf.com</td>
<td>Amazon</td>
<td>eNom</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"*.accelgolf.com"</td>
</tr>
<tr>
<td>adstruc.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"adstruc.com"</td>
</tr>
<tr>
<td>advertory.com</td>
<td>"OVH Systems", Gandi SAS</td>
<td>Google</td>
<td>Gandi SAS</td>
<td>Gandi SAS</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>aireum.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"SomeOrganization"</td>
<td>"ip-10-36-22-119"</td>
</tr>
<tr>
<td>ampidea.com</td>
<td>"Peer 1 Network Inc.", "Layered Technologies, Inc."</td>
<td>Google</td>
<td>"wordpress.com"</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.wordpress.com"</td>
</tr>
<tr>
<td>app-x.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>appetas.com</td>
<td>"Peer 1 Network Inc."</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.sqsp.com"</td>
</tr>
<tr>
<td>appsembler.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>appswell.com</td>
<td>Amazon</td>
<td>Google</td>
<td>DreamHost</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>apptentive.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>atlas5d.com</td>
<td>Google</td>
<td>Google</td>
<td>"dotster.com"</td>
<td>"DOMAIN.COM, LLC"</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>baydin.com</td>
<td>Media Temple</td>
<td>Google</td>
<td>Media Temple</td>
<td>1 and 1</td>
<td>Comodo Group</td>
<td>"www.baydin.com"</td>
</tr>
<tr>
<td>beta.pivotdesk.com</td>
<td>DNS issue</td>
<td>None</td>
<td>None</td>
<td>"Unknown"</td>
<td>Go Daddy</td>
<td>"*.pivotdesk.com"</td>
</tr>
<tr>
<td>betterfittechnologies.com</td>
<td>None</td>
<td>None</td>
<td>None</td>
<td>DreamHost</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>birdbox.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bisonalternatives.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bizible.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.wpengine.com"</td>
</tr>
<tr>
<td>blueboxnow.com</td>
<td>"Castle Access Inc"</td>
<td>None</td>
<td>"above.com"</td>
<td>"BIGLIZARDDOMAINS.COM LLC"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bondsy.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>bookingmarkets.com</td>
<td>Amazon</td>
<td>Google</td>
<td>"sudns.net", "internetcol.com"</td>
<td>"PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM"</td>
<td>Go Daddy</td>
<td>"*.bookingmarkets.com"</td>
</tr>
<tr>
<td>brightkite.com</td>
<td>Amazon</td>
<td>Self Hosted</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>brightwurks.com</td>
<td>"Voxel Dot Net, Inc."</td>
<td>Google</td>
<td>"voxel.net"</td>
<td>eNom</td>
<td>"GeoTrust Inc."</td>
<td>"billing.brightwurks.com"</td>
</tr>
<tr>
<td>buyplaywin.com</td>
<td>Media Temple</td>
<td>Self Hosted</td>
<td>Media Temple</td>
<td>Go Daddy</td>
<td>"Buyer Elite Inc"</td>
<td>"www.buyplaywin.com"</td>
</tr>
<tr>
<td>captimo.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>careporthealth.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>chatid.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon, Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>classtivity.com</td>
<td>Amazon</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"*.classtivity.com"</td>
</tr>
<tr>
<td>cloudability.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>DigiCert</td>
<td>"www.cloudability.com"</td>
</tr>
<tr>
<td>cloudsnap.com</td>
<td>"ServerStack, Inc."</td>
<td>Google</td>
<td>Amazon</td>
<td>DreamHost</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>coachup.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>codiqa.com</td>
<td>Linode</td>
<td>Google</td>
<td>Linode</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"*.codiqa.com"</td>
</tr>
<tr>
<td>conditionone.com</td>
<td>Media Temple</td>
<td>Self Hosted</td>
<td>Media Temple</td>
<td>Go Daddy</td>
<td>"SomeOrganization"</td>
<td>"conditionone.com"</td>
</tr>
<tr>
<td>conductrics.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>"webcontrolcenter.com"</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>contently.com</td>
<td>Amazon</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>DigiCert</td>
<td>"*.contently.com"</td>
</tr>
<tr>
<td>creativebrain.com</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>crowdtwist.com</td>
<td>"Peak 10"</td>
<td>"arsmtp.com"</td>
<td>Amazon, Go Daddy</td>
<td>Network Solutions</td>
<td>GeoTrust</td>
<td>"*.hmdnsgroup.com"</td>
</tr>
<tr>
<td>dailyburn.com</td>
<td>"Mindspark Interactive Network, Inc."</td>
<td>Google (Postini)</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"*.dailyburn.com"</td>
</tr>
<tr>
<td>datarobot.com</td>
<td>Go Daddy, Google</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>dealangel.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Media Temple</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>"GeoTrust Inc"</td>
<td>"www.dealangel.com"</td>
</tr>
<tr>
<td>dealcoop.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.dealcoop.com"</td>
</tr>
<tr>
<td>devver.net</td>
<td>Amazon</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>eNom</td>
<td>DigiCert</td>
<td>"*.herokuapp.com"</td>
</tr>
<tr>
<td>digitalocean.com</td>
<td>"ServerStack, Inc."</td>
<td>Google</td>
<td>Self Hosted</td>
<td>Network Solutions</td>
<td>Go Daddy</td>
<td>"www.digitalocean.com"</td>
</tr>
<tr>
<td>dispatch.io</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"Unknown"</td>
<td>Comodo Group</td>
<td>"*.dispatch.io"</td>
</tr>
<tr>
<td>distil.it</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>"Unknown"</td>
<td>Go Daddy</td>
<td>"www.distil.it"</td>
</tr>
<tr>
<td>doctrackr.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Gandi SAS</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>embarke.com</td>
<td>"Net Access Corporation", Media Temple</td>
<td>"outlook.com"</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.gridserver.com"</td>
</tr>
<tr>
<td>emergentone.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>epicplayground.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Name.com</td>
<td>Name.com</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>eventvue.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Slicehost</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>everlater.com</td>
<td>Amazon</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"www.everlater.com"</td>
</tr>
<tr>
<td>evertrue.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>everymove.org</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"everymove.org"</td>
</tr>
<tr>
<td>fanzo.me</td>
<td>Google</td>
<td>Google</td>
<td>Go Daddy</td>
<td>"GoDaddy.com, LLC R41-ME
Last Updated by Registrar:Afilias R54-ME"</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>fashionproject.com</td>
<td>eNom</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>flexminder.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>flextrip.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Self Hosted</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"www.flextrip.com"</td>
</tr>
<tr>
<td>flixmaster.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>flomio.com</td>
<td>Linode</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>Go Daddy</td>
<td>"*.flomio.com"</td>
</tr>
<tr>
<td>foodzie.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>freakngenius.com</td>
<td>"The Endurance International Group, Inc."</td>
<td>Google</td>
<td>"ipower.com"</td>
<td>Network Solutions</td>
<td>GeoTrust</td>
<td>"*.ipower.com"</td>
</tr>
<tr>
<td>fullcontact.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>GeoTrust</td>
<td>"*.fullcontact.com"</td>
</tr>
<tr>
<td>gestsure.com</td>
<td>"Peer 1 Network Inc."</td>
<td>Self Hosted</td>
<td>"hostpapa.com"</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>getambassador.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>CloudFlare</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"*.getambassador.com"</td>
</tr>
<tr>
<td>getlua.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Dynadot</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>getmarquee.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>getmealticket.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"www.getmealticket.com"</td>
</tr>
<tr>
<td>ginger.io</td>
<td>"Net Access Corporation"</td>
<td>Google, "mxsave.COM"</td>
<td>Linode</td>
<td>"Unknown"</td>
<td>Comodo Group</td>
<td>"*.ginger.io"</td>
</tr>
<tr>
<td>gochime.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.gochime.com"</td>
</tr>
<tr>
<td>gomiles.com</td>
<td>Go Daddy</td>
<td>"netsolmail.net"</td>
<td>"worldnic.com"</td>
<td>Network Solutions</td>
<td>Go Daddy</td>
<td>"*.traxo.com"</td>
</tr>
<tr>
<td>gosphero.com</td>
<td>Hurricane Electric</td>
<td>eNom</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.wpengine.com"</td>
</tr>
<tr>
<td>gospotcheck.com</td>
<td>Google</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>grabcad.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Self Hosted, Go Daddy</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"grabcad.com"</td>
</tr>
<tr>
<td>graphicly.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>grouptalent.com</td>
<td>Hurricane Electric</td>
<td>Google</td>
<td>Linode</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.grouptalent.com"</td>
</tr>
<tr>
<td>gympact.com</td>
<td>Go Daddy</td>
<td>Google, Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>haikudeck.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>havemyshift.com</td>
<td>Rackspace</td>
<td>Google, Self Hosted</td>
<td>Slicehost</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"havemyshift.com"</td>
</tr>
<tr>
<td>highlighter.com</td>
<td>"Wowrack.com"</td>
<td>Google</td>
<td>"worldnic.com"</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>immersivelabs.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>easyDNS, "easydns.info", Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>impulsesave.com</td>
<td>Amazon</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>eNom</td>
<td>VeriSign</td>
<td>"impulsesave.com"</td>
</tr>
<tr>
<td>inboxfever.com</td>
<td>Google</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>intensedebate.com</td>
<td>"GSI Hosting"</td>
<td>"automattic.com"</td>
<td>"automattic.com"</td>
<td>MarkMonitor</td>
<td>Go Daddy</td>
<td>"*.intensedebate.com"</td>
</tr>
<tr>
<td>jintronix.com</td>
<td>"Leaseweb USA, Inc."</td>
<td>WebFaction</td>
<td>WebFaction</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.webfaction.com"</td>
</tr>
<tr>
<td>jivesoftware.com</td>
<td>"Bandcon", Self Hosted</td>
<td>Self Hosted</td>
<td>Dyn Inc</td>
<td>"DOMAIN.COM, LLC"</td>
<td>DigiCert</td>
<td>"www.jivesoftware.com"</td>
</tr>
<tr>
<td>kapost.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.wpengine.com"</td>
</tr>
<tr>
<td>keen.io</td>
<td>SoftLayer, "Net Access Corporation"</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>"Unknown"</td>
<td>GeoTrust</td>
<td>"*.keen.io"</td>
</tr>
<tr>
<td>kinvey.com</td>
<td>Google</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>langolab.com</td>
<td>"Castle Access Inc"</td>
<td>None</td>
<td>"above.com"</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>laveem.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>eNom</td>
<td>DigiCert</td>
<td>"imprecipe.com"</td>
</tr>
<tr>
<td>leanplum.com</td>
<td>Google</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"Google Inc"</td>
<td>"*.google.com"</td>
</tr>
<tr>
<td>lessonsmith.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>eNom</td>
<td>"SomeOrganization"</td>
<td>"lessonsmith"</td>
</tr>
<tr>
<td>libboo.com</td>
<td>Amazon</td>
<td>Google</td>
<td>"mainnameserver.com"</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>Go Daddy</td>
<td>"www.libboo.com"</td>
</tr>
<tr>
<td>liftwave.com</td>
<td>"1&1 Internet AG"</td>
<td>Google</td>
<td>1 and 1</td>
<td>1 and 1</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>likebright.com</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>linksy.me</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>"GoDaddy.com, LLC R41-ME
Last Updated by Registrar:GoDaddy.com, LLC R41-ME"</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>litestack.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>localytics.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>DreamHost</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"*.wpengine.com"</td>
</tr>
<tr>
<td>lore.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>"StartCom Ltd."</td>
<td>"api.coursekit.com"</td>
</tr>
<tr>
<td>loudcaster.com</td>
<td>Amazon, Internap</td>
<td>Google</td>
<td>Nettica</td>
<td>Nettica</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>lumatic.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>GeoTrust</td>
<td>"*.lumatic.com"</td>
</tr>
<tr>
<td>madkast.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>mailana.com</td>
<td>Amazon</td>
<td>Google</td>
<td>easyDNS, "easydns.ca"</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>manageup.com</td>
<td>DNS issue, "Intap, LLC"</td>
<td>None</td>
<td>"registrationtek.com"</td>
<td>"REGISTRATION TECHNOLOGIES, INC."</td>
<td>GeoTrust</td>
<td>"*.opendns.com"</td>
</tr>
<tr>
<td>manctl.com</td>
<td>"Free SAS"</td>
<td>Google</td>
<td>Gandi SAS</td>
<td>Gandi SAS</td>
<td>"None"</td>
<td>"burrus.name"</td>
</tr>
<tr>
<td>marginize.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"marginize.com"</td>
</tr>
<tr>
<td>memrise.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>metricshub.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>mobilligy.com</td>
<td>Microsoft</td>
<td>"outlook.com"</td>
<td>"microsoftonline.com"</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"www.mobilligy.com"</td>
</tr>
<tr>
<td>mobintent.com</td>
<td>"Leaseweb USA, Inc."</td>
<td>WebFaction</td>
<td>WebFaction</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.webfaction.com"</td>
</tr>
<tr>
<td>mobiplug.co</td>
<td>Amazon, DreamHost</td>
<td>Google</td>
<td>DreamHost</td>
<td>"PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
Created by Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
Last Updated by Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM"</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>mocavo.com</td>
<td>"Integra Telecom, Inc."</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>VeriSign</td>
<td>"www.mocavo.com"</td>
</tr>
<tr>
<td>mogotest.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"www.mogotest.com"</td>
</tr>
<tr>
<td>monkeyanalytics.com</td>
<td>DNS issue</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.opendns.com"</td>
</tr>
<tr>
<td>mortardata.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Dyn Inc</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>moveline.com</td>
<td>Dyn Inc</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Moniker</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>murfie.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>nbdnano.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>nconnex.com</td>
<td>"Unified Layer"</td>
<td>Self Hosted</td>
<td>"hostmonster.com"</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>nestio.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"nestio.com"</td>
</tr>
<tr>
<td>nextbigsound.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.nextbigsound.com"</td>
</tr>
<tr>
<td>nveloped.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"nveloped.com"</td>
</tr>
<tr>
<td>occipital.com</td>
<td>"Peer 1 Network Inc."</td>
<td>Google</td>
<td>"peer1.net"</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"occipital.com"</td>
</tr>
<tr>
<td>okdidit.com</td>
<td>Rackspace, eNom</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>oneforty.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>"SomeOrganization"</td>
<td>"oneforty.com-redirect"</td>
</tr>
<tr>
<td>onswipe.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>onwander.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>ordr.in</td>
<td>"Peer 1 Network Inc."</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.sqsp.com"</td>
</tr>
<tr>
<td>ovuline.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"ovuline.com"</td>
</tr>
<tr>
<td>packetstash.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>Linode</td>
<td>Moniker</td>
<td>GeoTrust</td>
<td>"www.packetstash.com"</td>
</tr>
<tr>
<td>peoplessoftware.com</td>
<td>"Peer 1 Network Inc."</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>piictu.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>placester.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>"Starfield Technologies, Inc."</td>
<td>"*.placester.com"</td>
</tr>
<tr>
<td>playq.net</td>
<td>Rackspace</td>
<td>"FUSEMAIL.net"</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>poptip.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"DOMAIN.COM, LLC"</td>
<td>DigiCert</td>
<td>"*.poptip.com"</td>
</tr>
<tr>
<td>precog.com</td>
<td>"Liquid Web, Inc."</td>
<td>Google</td>
<td>Amazon</td>
<td>Dynadot</td>
<td>GeoTrust</td>
<td>"*.precog.com"</td>
</tr>
<tr>
<td>promoboxx.com</td>
<td>Amazon</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>psykosoft.net</td>
<td>CloudFlare</td>
<td>Google</td>
<td>CloudFlare</td>
<td>DreamHost</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>realtymogul.com</td>
<td>Amazon, "Unified Layer"</td>
<td>Google</td>
<td>"bluehost.com"</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"*.bluehost.com"</td>
</tr>
<tr>
<td>redroverhq.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>remitly.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>VeriSign</td>
<td>"www.remitly.com"</td>
</tr>
<tr>
<td>rentmatch.com</td>
<td>"Wowrack.com"</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>rentmonitor.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"www.rentmonitor.com"</td>
</tr>
<tr>
<td>reteltechnologies.com</td>
<td>"1&1 Internet AG"</td>
<td>"ihostexchange.net"</td>
<td>Savvis</td>
<td>Network Solutions</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>rewardsforce.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"rewardsforce.com"</td>
</tr>
<tr>
<td>rewind.me</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"GoDaddy.com, LLC R41-ME
Last Updated by Registrar:GoDaddy.com, LLC R41-ME"</td>
<td>"StartCom Ltd."</td>
<td>"www.rewind.me"</td>
</tr>
<tr>
<td>rezora.com</td>
<td>Rackspace</td>
<td>1 and 1</td>
<td>"zoneedit.com"</td>
<td>Network Solutions</td>
<td>Comodo Group</td>
<td>"www.rezora.com"</td>
</tr>
<tr>
<td>rollsale.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.rollsale.com"</td>
</tr>
<tr>
<td>romotive.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>SoftLayer</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"*.romotive.com"</td>
</tr>
<tr>
<td>roundpegg.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Zerigo</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.roundpegg.com"</td>
</tr>
<tr>
<td>roximity.com</td>
<td>Media Temple</td>
<td>Google</td>
<td>Media Temple</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"roximity.com"</td>
</tr>
<tr>
<td>salesloft.com</td>
<td>Linode</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>sandglaz.com</td>
<td>Amazon</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>saverrapp.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>scriptpad.net</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>"StartCom Ltd."</td>
<td>"www.scriptpad.net"</td>
</tr>
<tr>
<td>searchtophone.com</td>
<td>pair Networks</td>
<td>pair Networks</td>
<td>pair Networks, "ns0.com"</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"*.pair.com"</td>
</tr>
<tr>
<td>sendgrid.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"sendgrid.com"</td>
</tr>
<tr>
<td>senexx.com</td>
<td>Microsoft</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Comodo Group</td>
<td>"senexx.com"</td>
</tr>
<tr>
<td>sensobi.com</td>
<td>DNS issue</td>
<td>None</td>
<td>None</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>GeoTrust</td>
<td>"*.opendns.com"</td>
</tr>
<tr>
<td>shelby.tv</td>
<td>Rackspace</td>
<td>Google</td>
<td>Name.com</td>
<td>Name.com</td>
<td>VeriSign</td>
<td>"shelby.tv"</td>
</tr>
<tr>
<td>shopsy.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>shuttlecloud.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>sidetour.com</td>
<td>"Net Access Corporation"</td>
<td>Google</td>
<td>"dnsimple.com"</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>simpleenergy.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Name.com</td>
<td>Name.com</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>simplygood.com</td>
<td>Amazon</td>
<td>Google (Postini), Google</td>
<td>Dyn Inc</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"simplygood.com"</td>
</tr>
<tr>
<td>smallknot.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"www.smallknot.com"</td>
</tr>
<tr>
<td>smarketplaces.com</td>
<td>DNS issue, eNom</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>smorepages.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>GeoTrust</td>
<td>"www.smore.com"</td>
</tr>
<tr>
<td>snapengage.com</td>
<td>Internap</td>
<td>Google</td>
<td>Nettica, "no-ip.com"</td>
<td>Nettica</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>socedo.com</td>
<td>Microsoft, Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>1 and 1</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>socialengine.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"TUCOWS DOMAINS INC."</td>
<td>GeoTrust</td>
<td>"*.socialengine.com"</td>
</tr>
<tr>
<td>socialsci.com</td>
<td>"EBL Global Networks, Inc."</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"*.socialsci.com"</td>
</tr>
<tr>
<td>socialthing.com</td>
<td>AOL</td>
<td>Google</td>
<td>AOL</td>
<td>Melbourne IT</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>sparkcloud.com</td>
<td>SoftLayer</td>
<td>Self Hosted</td>
<td>Self Hosted</td>
<td>"LAUNCHPAD.COM, INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>spillnow.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"www.spillnow.com"</td>
</tr>
<tr>
<td>spontaneously.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>spotinfluence.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>DigiCert</td>
<td>"*.giveo.com"</td>
</tr>
<tr>
<td>spryplanner.com</td>
<td>"NTT PC Communications, Inc."</td>
<td>Self Hosted</td>
<td>"nlrs.jp"</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>staq.io</td>
<td>Microsoft</td>
<td>Dyn Inc</td>
<td>Dyn Inc</td>
<td>"Unknown"</td>
<td>None</td>
<td>"*.azurewebsites.net"</td>
</tr>
<tr>
<td>starstreet.com</td>
<td>Amazon, Media Temple</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"starstreet.com"</td>
</tr>
<tr>
<td>statsmix.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>eNom</td>
<td>Comodo Group</td>
<td>"*.statsmix.com"</td>
</tr>
<tr>
<td>stepout.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>stocktouch.com</td>
<td>"Webair Internet Development Company Inc."</td>
<td>Self Hosted</td>
<td>"site5.com"</td>
<td>Name.com</td>
<td>"Trend Micro Inc"</td>
<td>"*.accountservergroup.com"</td>
</tr>
<tr>
<td>strategic-blue.com</td>
<td>"Peer 1 Network Inc."</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"*.squarespace.com"</td>
</tr>
<tr>
<td>strohlmedical.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>styku.com</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>superb.ly</td>
<td>"Cogent/PSI"</td>
<td>Google</td>
<td>eNom</td>
<td>"Unknown"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>tempmine.com</td>
<td>Amazon</td>
<td>Google</td>
<td>DNS Made Easy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>tempo-db.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>GeoTrust</td>
<td>"*.tempo-db.com"</td>
</tr>
<tr>
<td>testive.com</td>
<td>Amazon</td>
<td>Google</td>
<td>"bluehost.com"</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>thehighwaygirl.com</td>
<td>Media Temple</td>
<td>Google</td>
<td>Media Temple</td>
<td>Go Daddy</td>
<td>"Parallels"</td>
<td>"plesk"</td>
</tr>
<tr>
<td>thetaplab.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>SoftLayer</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"dynamo.thetaplab.com"</td>
</tr>
<tr>
<td>thinkfuse.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>"domainsite.com"</td>
<td>"SPOT DOMAIN LLC DBA DOMAINSITE.COM"</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>thinknear.com</td>
<td>Rackspace, Black Lotus</td>
<td>Google</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>timehop.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>toviefor.com</td>
<td>Amazon, eNom</td>
<td>None</td>
<td>eNom</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>tredsite.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>truanttoday.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>eNom</td>
<td>GeoTrust</td>
<td>"*.truanttoday.com"</td>
</tr>
<tr>
<td>trueability.com</td>
<td>Rackspace</td>
<td>eNom</td>
<td>Rackspace</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>tutorialtab.com</td>
<td>"WeHostWebSites.com", Google</td>
<td>Google</td>
<td>Zerigo</td>
<td>eNom</td>
<td>None</td>
<td>"redirector.zerigo.net"</td>
</tr>
<tr>
<td>ubersense.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>ubi-interactive.com</td>
<td>"One.com A/S"</td>
<td>Google, "one.com"</td>
<td>"one.com"</td>
<td>"ASCIO TECHNOLOGIES, INC."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>ubooly.com</td>
<td>"ServerStack, Inc."</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"ubooly.com"</td>
</tr>
<tr>
<td>urtak.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>DreamHost</td>
<td>Go Daddy</td>
<td>"*.urtak.com"</td>
</tr>
<tr>
<td>useframe.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>usermojo.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>usingmiles.com</td>
<td>Go Daddy</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>vacationrentalpartner.com</td>
<td>None</td>
<td>None</td>
<td>None</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"www.vacationrentalpartner.com"</td>
</tr>
<tr>
<td>vanillaforums.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Rackspace</td>
<td>Name.com</td>
<td>GeoTrust</td>
<td>"www.vanillaforums.com"</td>
</tr>
<tr>
<td>verbalizeit.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"*.verbalizeit.com"</td>
</tr>
<tr>
<td>veri.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Gandi SAS</td>
<td>Gandi SAS</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>vidmaker.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Amazon</td>
<td>Name.com</td>
<td>DigiCert</td>
<td>"vidmaker.com"</td>
</tr>
<tr>
<td>villij.com</td>
<td>SoftLayer</td>
<td>Google</td>
<td>Name.com</td>
<td>Name.com</td>
<td>GeoTrust</td>
<td>"*.villij.com"</td>
</tr>
<tr>
<td>vizify.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>Go Daddy</td>
<td>DigiCert</td>
<td>"*.heroku.com"</td>
</tr>
<tr>
<td>voxon.co</td>
<td>DreamHost</td>
<td>Google</td>
<td>DreamHost</td>
<td>"CCI REG S.A.
Created by Registrar: CCI REG S.A.
Last Updated by Registrar: CCI REG S.A."</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>wantworthy.com</td>
<td>Amazon</td>
<td>Google</td>
<td>CloudFlare</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>worldblender.com</td>
<td>"Weebly, Inc."</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>wymsee.com</td>
<td>"Colo4, LLC"</td>
<td>Self Hosted</td>
<td>"welcomesearchers.com"</td>
<td>Go Daddy</td>
<td>"AlphaSSL"</td>
<td>"*.unisonplatform.com"</td>
</tr>
<tr>
<td>yourkarma.com</td>
<td>Amazon</td>
<td>Google</td>
<td>Amazon</td>
<td>"KEY-SYSTEMS GMBH"</td>
<td>GeoTrust</td>
<td>"*.yourkarma.com"</td>
</tr>
<tr>
<td>zagster.com</td>
<td>"FireHost, Inc."</td>
<td>Google</td>
<td>CloudFlare</td>
<td>eNom</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>zeppelin.co</td>
<td>Microsoft</td>
<td>Google</td>
<td>CloudFlare</td>
<td>"GODADDY.COM, INC.
Created by Registrar: GODADDY.COM, INC.
Last Updated by Registrar: GODADDY.COM, INC."</td>
<td>Comodo Group</td>
<td>"*.zeppelin.co"</td>
</tr>
<tr>
<td>ziptask.com</td>
<td>Rackspace</td>
<td>Google</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>Go Daddy</td>
<td>"app.ziptask.com"</td>
</tr>
</table>
</div>
</div><!-- container -->
</body>
</html>
================================================
FILE: view/html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><%= list_name %></title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="author" content="Joel Franusic" />
<link rel="stylesheet" href="public/style.css" media="screen,projection" type="text/css" />
<script src="public/sorttable.js"></script>
</head>
<body>
<div id="container">
<h1>Chart of <%= list_name %> companies' hosting decisions, 2011 edition</h1>
<div id="note">
Generated by <a href="https://github.com/jpf">Joel</a> on <%= Time.now.strftime('%Y-%m-%d') %> using his <a href="http://github.com/jpf/domain-profiler/tree/master">domain-profiler</a> software. Patches welcome.
</div>
<div id="charts">
<% charts.each do |chart| %>
<img src="<%= chart[:url] %>"/>
<% end %>
</div>
<div id="data">
<table class="sortable" border="1">
<tr>
<th>Domain</th>
<% types.each do |type| %>
<th><%= full_name[type] %></th>
<% end %>
</tr>
<% hosts.each do |domain,data| %>
<tr>
<td><%= domain %></td>
<% types.each do |type| %>
<td><%= data[type].map{|i| if i.is_a? String; "\"#{i}\"" ; else x = fullname(i); end}.join(', ') %></td>
<% end %>
</tr>
<% end %>
</table>
</div>
</div><!-- container -->
</body>
</html>
================================================
FILE: view/text
================================================
<%
name = Name.new
web = {}
profile.dns.a.each do |record|
org = name.full(name.simplify(orgname(record.answer)))
web[org] = [] unless web[org].is_a? Array
web[org].push(record.answer)
end
dns = {}
profile.dns.ns.each do |record|
org = name.full(name.simplify(name.shorten(record.answer)))
dns[org] = [] unless dns[org].is_a? Array
dns[org].push(record.answer)
end
email = {}
profile.dns.mx.each do |record|
org = name.full(name.simplify(name.shorten(record.answer)))
email[org] = [] unless email[org].is_a? Array
email[org].push(record.answer)
end
%>
==========[ <%= profile.hostname %> ]==========
Web Hosting:<% web.each do |org,hosts| %>
(<%= org %>)<% hosts.each
gitextract_svk5w318/ ├── 500-startups ├── 500-startups.html ├── README.md ├── Rakefile ├── TODO ├── cache/ │ └── .gitignore ├── config/ │ └── name-lookups.yaml ├── domain-profiler-mind-map.mm ├── github-list ├── github.html ├── lib/ │ ├── domain-profiler/ │ │ ├── dns.rb │ │ ├── fetch-info.rb │ │ ├── information.rb │ │ ├── ip-to-asn.rb │ │ ├── name.rb │ │ ├── ssl.rb │ │ ├── whois-orgname.rb │ │ └── whois.rb │ └── domain-profiler.rb ├── list/ │ ├── alexa-top-100 │ ├── quantcast-top-100 │ ├── time-top-50 │ └── ycombinator ├── profile ├── profile-godaddy ├── profile-list ├── public/ │ ├── quantcast.html │ ├── sorttable.js │ └── style.css ├── quantcast.html ├── spec/ │ ├── dns/ │ │ ├── dns_spec.rb │ │ └── fixtures/ │ │ ├── dns.raw.dump │ │ ├── ehow.com.raw.dump │ │ ├── furbo.org.raw.dump │ │ └── go.com.raw.dump │ ├── domain-profiler_spec.rb │ ├── ip-to-asn/ │ │ └── ip-to-asn_spec.rb │ ├── name/ │ │ └── name_spec.rb │ ├── rcov.opts │ ├── spec.opts │ ├── spec_helper.rb │ ├── ssl/ │ │ ├── fixtures/ │ │ │ ├── openssl.raw.dump │ │ │ └── openssl.single.raw.dump │ │ └── ssl_spec.rb │ ├── whois/ │ │ ├── fixtures/ │ │ │ ├── furbo.org.raw.dump │ │ │ └── zombo.com.raw.dump │ │ └── whois_spec.rb │ └── whois-orgname/ │ └── whois_spec.rb ├── techstars-list ├── techstars.html ├── view/ │ ├── html │ └── text ├── ycombinator-companies-using-godaddy ├── ycombinator-list ├── ycombinator-list-all └── ycombinator.html
SYMBOL INDEX (60 symbols across 10 files)
FILE: lib/domain-profiler.rb
class DomainProfiler (line 11) | class DomainProfiler
method initialize (line 12) | def initialize(host)
function orgname (line 28) | def orgname(input)
FILE: lib/domain-profiler/dns.rb
class DNSType (line 1) | class DNSType
method initialize (line 2) | def initialize(input)
method mx_value (line 5) | def mx_value(n)
method priority (line 10) | def priority
method host (line 14) | def host
method method_missing (line 17) | def method_missing(type)
class DNSQuery (line 26) | class DNSQuery
method initialize (line 27) | def initialize(input)
method spf (line 39) | def spf
method method_missing (line 48) | def method_missing(type)
class DNS (line 61) | class DNS
method parse (line 62) | def parse(data)
method method_missing (line 69) | def method_missing(type)
FILE: lib/domain-profiler/fetch-info.rb
class Information (line 1) | class Information
method fetch (line 2) | def fetch(host)
FILE: lib/domain-profiler/information.rb
class Information (line 2) | class Information
method initialize (line 3) | def initialize(opt={})
method status (line 6) | def status(message)
method fetch (line 11) | def fetch(host)
FILE: lib/domain-profiler/ip-to-asn.rb
class Origin (line 3) | class Origin
method initialize (line 4) | def initialize(ip_address)
class ASN (line 13) | class ASN
method initialize (line 14) | def initialize(asn)
method netname (line 18) | def netname
method orgname (line 21) | def orgname
class IPtoASN (line 28) | class IPtoASN
method initialize (line 29) | def initialize(input, use_cache = true)
method origin (line 48) | def origin
method asn (line 51) | def asn
FILE: lib/domain-profiler/name.rb
class Name (line 1) | class Name
method initialize (line 2) | def initialize
method shorten (line 13) | def shorten(input)
method simplify (line 24) | def simplify(input,match=nil)
method full (line 32) | def full(shortname)
FILE: lib/domain-profiler/ssl.rb
class SSL (line 6) | class SSL
method initialize (line 7) | def initialize
method parse (line 10) | def parse(input)
method cn (line 24) | def cn
method ca (line 28) | def ca
method created (line 37) | def created
method expires (line 41) | def expires
FILE: lib/domain-profiler/whois-orgname.rb
class WhoisOrgName (line 2) | class WhoisOrgName
method initialize (line 3) | def initialize(input, use_cache = true)
method grep (line 22) | def grep(pattern)
method orgname (line 30) | def orgname
FILE: lib/domain-profiler/whois.rb
class Whois (line 2) | class Whois
method parse (line 3) | def parse(data)
method grep (line 10) | def grep(pattern)
method registrar (line 17) | def registrar
method created (line 22) | def created
method updated (line 25) | def updated
method expires (line 28) | def expires
method status (line 31) | def status
FILE: public/sorttable.js
function dean_addEvent (line 374) | function dean_addEvent(element, type, handler) {
function removeEvent (line 400) | function removeEvent(element, type, handler) {
function handleEvent (line 411) | function handleEvent(event) {
function fixEvent (line 427) | function fixEvent(event) {
Condensed preview — 56 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (291K chars).
[
{
"path": "500-startups",
"chars": 2943,
"preview": "## From the sometimes-its-just-faster-to-use-bash department:\n## This file was generated with the following commands:\n# "
},
{
"path": "500-startups.html",
"chars": 0,
"preview": ""
},
{
"path": "README.md",
"chars": 5403,
"preview": "## What is domain-profiler?\n\ndomain-profiler is a tool that uses information from various sources (Whois, DNS, SSL, ASN)"
},
{
"path": "Rakefile",
"chars": 1248,
"preview": "require 'rake'\n# Commenting out this next line will fix the stupid \"undefined method `gem' for main:Object\" error on deb"
},
{
"path": "TODO",
"chars": 1255,
"preview": "FIX ME: Why are some of the IP addresses for hp.com returning blank?\n\nWe should be able to tell the difference between E"
},
{
"path": "cache/.gitignore",
"chars": 7,
"preview": "*.cache"
},
{
"path": "config/name-lookups.yaml",
"chars": 10148,
"preview": "--- \n:self:\n :name: Self Hosted\n:other:\n :name: Other / Self Hosted\n:none:\n :name: None\n:softlayer: \n :name: SoftLay"
},
{
"path": "domain-profiler-mind-map.mm",
"chars": 4820,
"preview": "<map version=\"0.8.1\">\n<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourcefo"
},
{
"path": "github-list",
"chars": 79,
"preview": "github.com\njobs.github.com\nstatus.github.com\nshop.github.com\ndevelop.github.com"
},
{
"path": "github.html",
"chars": 3483,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://ww"
},
{
"path": "lib/domain-profiler/dns.rb",
"chars": 1431,
"preview": "class DNSType\n def initialize(input)\n @input = input\n end\n def mx_value(n)\n return :none unless (defined? @inpu"
},
{
"path": "lib/domain-profiler/fetch-info.rb",
"chars": 788,
"preview": "class Information\n def fetch(host)\n data = {}\n version = 'v2'\n filename = \"cache/#{host}.#{version}.cache\"\n "
},
{
"path": "lib/domain-profiler/information.rb",
"chars": 1332,
"preview": "\nclass Information\n def initialize(opt={})\n @debug = opt[:debug]\n end\n def status(message)\n return unless @debu"
},
{
"path": "lib/domain-profiler/ip-to-asn.rb",
"chars": 1496,
"preview": "require 'ipaddr'\n\nclass Origin\n def initialize(ip_address)\n # dig +short 31.108.90.216.origin.asn.cymru.com TXT\n "
},
{
"path": "lib/domain-profiler/name.rb",
"chars": 1309,
"preview": "class Name\n def initialize\n lookup_file = File.expand_path(File.dirname(__FILE__) + '../../../config/name-lookups.ya"
},
{
"path": "lib/domain-profiler/ssl.rb",
"chars": 992,
"preview": "require 'open3'\n# connect: Operation timed out\n# connect: Connection refused\n# connect:errno=61\n\nclass SSL\n def initial"
},
{
"path": "lib/domain-profiler/whois-orgname.rb",
"chars": 835,
"preview": "# Thanks to HN user 'jedsmith' for telling me about this! (http://news.ycombinator.com/item?id=2081312)\nclass WhoisOrgNa"
},
{
"path": "lib/domain-profiler/whois.rb",
"chars": 586,
"preview": "\nclass Whois\n def parse(data)\n @data = data.to_s.lines\n # com = verisign\n # net = verisign\n # org = pir\n "
},
{
"path": "lib/domain-profiler.rb",
"chars": 783,
"preview": "require 'ipaddr'\nrequire 'domain-profiler/dns'\nrequire 'domain-profiler/whois'\nrequire 'domain-profiler/whois-orgname'\nr"
},
{
"path": "list/alexa-top-100",
"chars": 1159,
"preview": "google.com\nyahoo.com\nyoutube.com\nfacebook.com\nlive.com\nmsn.com\nwikipedia.org\nblogger.com\nbaidu.com\nyahoo.co.jp\nmyspace.c"
},
{
"path": "list/quantcast-top-100",
"chars": 1224,
"preview": "#List: Quantcast Top 100\ngoogle.com\nyahoo.com\nmsn.com\nfacebook.com\nlive.com\nyoutube.com\nmicrosoft.com\nwikipedia.org\nmysp"
},
{
"path": "list/time-top-50",
"chars": 730,
"preview": "gasbuddy.com\nhowcast.com\niliketotallyloveit.com\nomiru.com\npsychcentral.com\ntripkick.com\nwikitravel.com\n#answers.yahoo.co"
},
{
"path": "list/ycombinator",
"chars": 915,
"preview": "#List: Y Combinator\n#2009-08-05\nreddit.com\nloopt.com\nclickfacts.com\nsnipshot.com\ninklingmarkets.com\nwufoo.com\nthinkature"
},
{
"path": "profile",
"chars": 458,
"preview": "#!/usr/bin/env ruby\n# encoding: UTF-8\n$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')\n\nrequire 'pp'"
},
{
"path": "profile-godaddy",
"chars": 2634,
"preview": "#!/usr/bin/env ruby\n# encoding: UTF-8\n$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')\n\nrequire 'pp'"
},
{
"path": "profile-list",
"chars": 3438,
"preview": "#!/usr/bin/env ruby\n# encoding: UTF-8\n$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')\n\nrequire 'pp'"
},
{
"path": "public/quantcast.html",
"chars": 0,
"preview": ""
},
{
"path": "public/sorttable.js",
"chars": 16915,
"preview": "/*\n SortTable\n version 2\n 7th April 2007\n Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/\n \n In"
},
{
"path": "public/style.css",
"chars": 982,
"preview": "\n/*\nCSS from:\n http://fluidmind.org/test/css/tables.html\nColour pallete inspired by:\n http://www.colourlovers.com/pale"
},
{
"path": "quantcast.html",
"chars": 30270,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://ww"
},
{
"path": "spec/dns/dns_spec.rb",
"chars": 2432,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/dns'\n"
},
{
"path": "spec/dns/fixtures/dns.raw.dump",
"chars": 2176,
"preview": "\n; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns google.com\n; (1 server found)\n;; global options: printcmd\n;; Got answer:\n;; ->>HE"
},
{
"path": "spec/dns/fixtures/ehow.com.raw.dump",
"chars": 1431,
"preview": "\n; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns ehow.com\n; (1 server found)\n;; global options: printcmd\n;; Got answer:\n;; ->>HEAD"
},
{
"path": "spec/dns/fixtures/furbo.org.raw.dump",
"chars": 1883,
"preview": "; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns furbo.org\n; (1 server found)\n;; global options: printcmd\n;; Got answer:\n;; ->>HEAD"
},
{
"path": "spec/dns/fixtures/go.com.raw.dump",
"chars": 1964,
"preview": "\n; <<>> DiG 9.4.3-P1 <<>> @4.2.2.2 ns go.com\n; (1 server found)\n;; global options: printcmd\n;; Got answer:\n;; ->>HEADER"
},
{
"path": "spec/domain-profiler_spec.rb",
"chars": 611,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/spec_helper.rb')\nrequire 'domain-profiler'\n\ndescri"
},
{
"path": "spec/ip-to-asn/ip-to-asn_spec.rb",
"chars": 1666,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/ip-to"
},
{
"path": "spec/name/name_spec.rb",
"chars": 1786,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/name'"
},
{
"path": "spec/rcov.opts",
"chars": 77,
"preview": "--exclude spec,gem\n--text-summary\n--spec-only\n--sort coverage --sort-reverse\n"
},
{
"path": "spec/spec.opts",
"chars": 26,
"preview": "--format specdoc\n--colour\n"
},
{
"path": "spec/spec_helper.rb",
"chars": 136,
"preview": "# encoding: UTF-8\n$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')\n\nrequire 'rubygems'\nrequire 'd"
},
{
"path": "spec/ssl/fixtures/openssl.raw.dump",
"chars": 2348,
"preview": "depth=1 /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA\nverify error:num=20:unable to get local issuer certificate"
},
{
"path": "spec/ssl/fixtures/openssl.single.raw.dump",
"chars": 2843,
"preview": "depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com\nverify error:num=20:unable to get local issuer "
},
{
"path": "spec/ssl/ssl_spec.rb",
"chars": 1434,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/ssl'\n"
},
{
"path": "spec/whois/fixtures/furbo.org.raw.dump",
"chars": 2845,
"preview": " NOTICE: Access to .ORG WHOIS information is provided to assist persons in\ndetermining the contents of a domain name"
},
{
"path": "spec/whois/fixtures/zombo.com.raw.dump",
"chars": 5309,
"preview": "\nWhois Server Version 2.0\n\nDomain names in the .com and .net domains can now be registered\nwith many different competing"
},
{
"path": "spec/whois/whois_spec.rb",
"chars": 1612,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/whois"
},
{
"path": "spec/whois-orgname/whois_spec.rb",
"chars": 379,
"preview": "# encoding: UTF-8\nrequire File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')\nrequire 'domain-profiler/whois"
},
{
"path": "techstars-list",
"chars": 3096,
"preview": "10sheet.com\n27perry.com\naccelgolf.com\nadstruc.com\nadvertory.com\naireum.com\nampidea.com\napp-x.com\nappetas.com\nappsembler."
},
{
"path": "techstars.html",
"chars": 59431,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://ww"
},
{
"path": "view/html",
"chars": 1463,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://ww"
},
{
"path": "view/text",
"chars": 1176,
"preview": "<%\nname = Name.new\n\nweb = {}\nprofile.dns.a.each do |record|\n org = name.full(name.simplify(orgname(record.answer)))\n w"
},
{
"path": "ycombinator-companies-using-godaddy",
"chars": 6530,
"preview": "This is a list of all YCombinator companies that appear to do business with \nGoDaddy.\n\nIn addition to showing which doma"
},
{
"path": "ycombinator-list",
"chars": 2327,
"preview": "# List of active Y Combinator startups that haven't exited yet.\n# Due to the limited capabilities of my code, this list "
},
{
"path": "ycombinator-list-all",
"chars": 3679,
"preview": "# List of active Y Combinator startups that haven't exited yet.\n# Due to the limited capabilities of my code, this list "
},
{
"path": "ycombinator.html",
"chars": 64553,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://ww"
}
]
About this extraction
This page contains the full source code of the jpf/domain-profiler GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 56 files (264.5 KB), approximately 88.7k tokens, and a symbol index with 60 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.