Received: from koobera.math.uic.edu (qmailr@131.193.178.247)
  by cruncher.math.uic.edu with SMTP; 25 Mar 1998 16:16:34 -0000
Received: (qmail 26361 invoked by uid 666); 25 Mar 1998 16:26:26 -0000
Delivered-To: djb-qmail@koobera.math.uic.edu
Received: (qmail 26356 invoked from network); 25 Mar 1998 16:26:25 -0000
Received: from wave.bfnet.com (205.162.1.131)
  by koobera.math.uic.edu with SMTP; 25 Mar 1998 16:26:25 -0000
Received: (qmail 11164 invoked by uid 2001); 25 Mar 1998 16:25:21 -0000
To: djb-qmail@koobera.math.uic.edu
Subject: My own little SMTP server survey
From: dave-mlist@bfnet.com
Date: 25 Mar 1998 08:25:20 -0800
Message-ID: 
Lines: 214
X-Mailer: Gnus v5.5/Emacs 20.2

Having some cheap bandwidth available, I decided to carry out my own
SMTP server survey.  I make no claims about how well it describes the
actual state of Internet SMTP server installation, but I am very
interested to hear everyone's opinion on its quality, and suggestions
for improving it.

The important limitations on this survey were 1) all hostnames were
harvested from my own archives of e-mail and news with no references
to lists or databases outside my own system, and 2) the remote server
classification was made purely by connecting to port 25 and parsing
the reply to the HELP command.  Having said this, I still believe that
this survey is informative in spite of these limitations.  You could
say that the question this survey answered was "What servers do I
regularly connect to?"  The obvious improvement would be to use a
comprehensive list of MX hosts, not one dependent on my own archives.

I tallied a total of 12,318 MX hosts, of which 95% were recognizable
servers.

The final results of the survey are at the end of this mail.  The
steps I took to obtain them are as follows:

1)      Hostname Harvest.  I grepped every file on my system for
        anything resembling a hostname.  This step yeilded 22,275
        different host names of untested validity.

2)      MX Lookup.  For each host name, I conducted a DNS lookup for
        the MX associated with that host's domain name.  This resulted
        in 14,202 different MX host names.

        What percentage of the total number of MX hosts does this
        represent?  If anyone wants to give me their lists of MX hosts
        (or any host, for that matter), I will include them in my
        future surveys.  FWIW, I promise to never give any part of
        this list to anyone, let alone spammers.

        Here is a breakdown of the numbers of MX host names found per
        TLD:

        com: 4342
        net: 2379
        edu: 1884
        de: 636
        jp: 554
        au: 447
        org: 415
        uk: 405
        ca: 395
        fr: 237
        nl: 219
        it: 169
        gov: 156
        se: 138
        fi: 114
        es: 104
        no: 102
        90-99: mil,us,ru
        60-89: ch,be,nz
        50-59: br,at,dk,pl
        40-49: cz,ie,kr,pt,il
        30-39: za,sg,hu,tw,mx
        20-29: gr,su,ro,hk
        10-19: ua,in,tr,ar,cn,bg,cl,hr,th,ph,is,my
        1-9: ve,sk,lt,ee,si,id,ir,cr,pk,lv,gb,py,uy,fj,nu,co,cu,pe,hn,to,tt,
             bm,ni,np,ke,sv,do,lk,lu,up,yu,bo,sa,gt,kw,int,dz,ae,ec,ai,eg,ma

3)      SMTP Server Query.  For each MX host name, I connected to port
        25 of that host and sent the 'HELP' command.  I parsed the
        reply with the following perl snippet.  I wrote this snippet
        before I had seen DJB's survey, so I have some ideas of how to
        improve it.

if    (/sendmail (\d\.\d\.\d)/i) { $saw = "Sendmail $1"; }
elsif (/sendmail/i)              { $saw = "Sendmail"; }
elsif (/qmail/i)                 { $saw = "Qmail"; }
elsif (/pmdf/i)                  { $saw = "PMDF"; }
elsif (/zmailer/i)               { $saw = "ZMailer"; }
elsif (/exim/i)                  { $saw = "Exim"; }
elsif (/smail/i)                 { $saw = "Smail"; }
elsif (/Netscape/i)              { $saw = "Netscape Mail Server"; }
elsif (/Apple Internet/i)        { $saw = "Apple Internet Mail"; }
elsif (/Lotus/i)                 { $saw = "Lotus SMTP MTA Service"; }
elsif (/MX V/)                   { $saw = "MX"; }
elsif (/GIVEME/i)                { $saw = "GIVEME"; }
elsif (/Eudora/i)                { $saw = "Eudora"; }
elsif (/smap/i)                  { $saw = "smap"; }
elsif (/post\.office/i)          { $saw = "Post.Office"; }
elsif (/MailSite/)               { $saw = "MailSite"; }
elsif (/CISCO MultiNet/)         { $saw = "CISCO MultiNet"; }
elsif (/InterLock/)              { $saw = "InterLock"; }
elsif (/IMail/)                  { $saw = "IMail"; }
elsif (/Mercury/)                { $saw = "Mercury"; }
elsif (/SMTPXD/)                 { $saw = "SMTPXD"; }
elsif (/TGV MultiNet/)           { $saw = "TGV MultiNet"; }
elsif (/Intermail/)              { $saw = "Intermail"; }
elsif (/WorldMail/)              { $saw = "WorldMail"; }
elsif (/MDaemon/)                { $saw = "MDaemon"; }
elsif (/Mail\*Link/)             { $saw = "Mail*Link"; }
elsif (/Vmailer/i)               { $saw = "Vmailer"; }
elsif (/FirstClass/)             { $saw = "FirstClass"; }
elsif (/Microsoft SMTP/)         { $saw = "Microsoft SMTP"; }
elsif (/Microsoft Exchange/)     { $saw = "Microsoft Exchange"; }
elsif (/InterScan/)              { $saw = "InterScan"; }
elsif (/Stalker/)                { $saw = "Stalker"; }
elsif (/Who are you gonna pret/) { $saw = "Pretend"; }
elsif (/Wildcat/)                { $saw = "Wildcat"; }
elsif (/Groupwise/i)             { $saw = "Groupwise"; }
elsif (/Black Hole/)             { $saw = "Black Hole"; }
elsif (/Generic/)                { $saw = "Generic"; }
elsif (/iSMTP/)                  { $saw = "iSMTP"; }
elsif (/WindowsNT SMTP/)         { $saw = "WindowsNT SMTP"; }
elsif (/IBM VM SMTP/)            { $saw = "IBM VM SMTP"; }
elsif (/IMS SMTP/)               { $saw = "IMS SMTP Receiver"; }
elsif (/SLMail/)                 { $saw = "SLMail"; }
elsif (/AltaVista Mail/)         { $saw = "AltaVista Mail"; }
elsif (/IPAD/i)                  { $saw = "IPAD"; }
elsif (/S-Bridge/i)              { $saw = "S-Bridge"; }
elsif (/CheckPoint/)             { $saw = "CheckPoint FireWall"; }
elsif (/iSC/)                    { $saw = "iSC"; }
elsif (/pp.+here.+pleased/i)     { $saw = "PP"; }

4)      Histogram:

                    Total       12318  %100.0
                    -------------------------
           Total Sendmail       8639    70.1
                  unknown       633     5
                    Qmail       575     4
                     smap       367     2
                     PMDF       334     2
              Post.Office       223     1
                    Smail       203     1
                     Exim       197     1
       Microsoft Exchange       180     1
                       PP       95      0
     Netscape Mail Server       93      0
                    IMail       71      0
                  ZMailer       64      0
           WindowsNT SMTP       64      0
                  Generic       52      0
                       MX       38      0
                   Eudora       37      0
        IMS SMTP Receiver       34      0
                Groupwise       34      0
                   SLMail       33      0
                  Pretend       32      0
           Microsoft SMTP       28      0
                  Mercury       28      0
              IBM VM SMTP       27      0
      CheckPoint FireWall       23      0
                InterLock       20      0
   Lotus SMTP MTA Service       19      0
           CISCO MultiNet       15      0
                  Vmailer       15      0
                     IPAD       14      0
                Mail*Link       14      0
             TGV MultiNet       14      0
                 MailSite       13      0
                   SMTPXD       12      0
           AltaVista Mail       11      0
                    iSMTP       8       0
      Apple Internet Mail       8       0
               Black Hole       7       0
                  MDaemon       7       0
                      iSC       6       0
                Intermail       6       0
               FirstClass       6       0
                  Stalker       4       0
                  Wildcat       3       0
                 S-Bridge       3       0
                   GIVEME       3       0
                InterScan       3       0
                WorldMail       3       0

Sendmail Breakdown:
           Sendmail 8.8.8       2324    26
           Sendmail 8.8.5       1914    22
           Sendmail ? ? ?       1616    18
           Sendmail 8.8.7       1329    15
           Sendmail 8.8.6       447     5
           Sendmail 8.6.1       284     3
           Sendmail 8.8.4       171     1
           Sendmail 8.7.5       144     1
           Sendmail 8.8.3       73      0
           Sendmail 8.7.6       63      0
           Sendmail 8.6.9       56      0
           Sendmail 8.7.1       48      0
           Sendmail 8.7.4       34      0
           Sendmail 8.9.0       32      0
           Sendmail 8.7.3       30      0
           Sendmail 8.8.2       26      0
           Sendmail 8.8.0       13      0
           Sendmail 8.6.8       11      0
           Sendmail 8.8.1       4       0
           Sendmail 8.7.2       3       0
           Sendmail 8.9.6       3       0
           Sendmail 8.6.4       3       0
           Sendmail 8.6.7       3       0
           Sendmail 8.9.1       2       0
           Sendmail 8.6.5       2       0
           Sendmail 3.3.3       1       0
           Sendmail 9.5.6       1       0
           Sendmail 9.9.5       1       0
           Sendmail 7.2.5       1       0

5)      Analysis: Although my results agree roughly with DJB's
        regarding the percentage of sendmail hosts, the other
        percentages appear to be somewhat different.  Of course, DJB
        used a more objective list of hosts.  I found a much larger
        percentage of qmail hosts, which is explainable by my personal
        email bias.  In the future perhaps I will repeat the survey
        with a larger set of MX hosts.

Dave