Example: "143.ATM3-0.XR2.LAX2.ALTER.NET" matches the regular expression "/\.([a-z]{3})\d*\.alter\.net/i". The parentheses around "[a-z]{3}" extracts just "LAX" out of this hostname, which is the code we want. The code database then converts this to Los Angeles, California, USA.
Example with multiple portions: "atm0-0-86.lon3gw1.uk.insnet.net" matches the regular expression "/([a-z]+)\d*gw\d*\.([a-z]+)\.insnet\.net$/i". The two parenthesized portions match "lon" and "uk" respectively. These are combined to form "lon.uk", which is the code we want. The code database then converts this to London, United Kingdom.
A list of the patterns (Perl regular expressions) I know about is below.
# As of 10/26/2002, lines starting with hashmark are comments
# Begin special cases
# "ham" means Hamburg, Germany to everyone but alter.net (Hamilton, Canada)
/\.(ham)\d*\.(alter)\.net$/i
# "mil" means Milan,Italy to all but below (Milwaukee,WI)
/^rr\-(mil)\.(atdn)\.net$/i
/\.(mil)\.(choiceone)\.net$/i
/^(mil).*\.(starnetusa)\.net$/i
# "mad" means Madrid, Spain to everyone but verizon (Madison, NJ) and popsite (Madison, WI)
/\.(mad)\.(verizon\-gni)\.net$/i
/^(mad).*\.(popsite)\.net$/i
# "man" is Manchester, NH to verizon
/\.(man)\.(verizon\-gni)\.net$/i
# "cambridge" means MA, USA to bbnplanet, but England to ja.net
/\.(cambridge)\-bar\d*\.(ja)\.net$/i
# athens.oar.net is Athens, OH, USA (not Greece)
/\.(athens)\.(oar)\.net$/i
# "bur" is Burbank, CA to everyone but adelphia, where it varies
/^([a-z]{2})\-([a-z]+).*\.bur\.adelphia\.net$/i
# "vie" is Vienna, Austria to everyone but atdn.net (Vienna, VA)
/\-(vie)\-p[\d\-]*\.(atdn)\.net$/i
# "hbg" is Hamburg to everyone but mindspring (???)
/\.(hbg)\d*\.(mindspring)\.net$/i
# "portland" is Portland, OR to most, but Portland, ME to atdn.net
/^rr\-(portland)\.(atdn)\.net$/i
# sxb is Strasbourg, France to ALTER.NET, not sure what to tsnz.net
/\.(sxb)\d*\.(alter)\.net$/i
# london is Canada for bellnexxia, England/UK for everyone else
/^dis\d*\-(london).*\.in\.(bellnexxia)\.net$/i
# stk is Stockholm for alter.net, Stockton,CA otherwise
/\.(stk)\d*\.(alter)\.net$/i
# most ip.tele.dk don't have embedded numbers; exceptions below
/^(ffm)\d*[a-z]+\d*\.ip\.tele\.dk$/i
/^(gbg)\d*[a-z]+\d*\.ip\.tele\.(dk)$/i
/^(hmb)\d*[a-z]+\d*\.ip\.tele\.(dk)$/i
/^(kd4)[a-z]+\d*\.ip\.tele\.(dk)$/i
/^(ldn)\d*[a-z]+\d*\.ip\.tele\.dk$/i
/^(mm)\d*[a-z]+\d*\.ip\.tele\.(dk)$/i
/^(newyork)\d*[a-z]+\d*\.ip\.tele\.dk$/i
/^(oslo)\d*[a-z]+\d*\.ip\.tele\.dk$/i
/^(stkm)\d*[a-z]+\d*\.ip\.tele\.(dk)$/i
# birmingham means england to most, Alabama to level3
/\.(birmingham)\d*\.(level3)\.net$/i
# manchester is another city in both the USA and England
/\.(manchester)\d*\.(level3)\.net$/i
# sympatico london is the one in CAnada, not CAlifornia
/^(london).*\.(sympatico)\.(ca)$/i
# for pacbell (PBI), "chic" is Chico CA, not Chicago IL
/\.(chic)\d*\.(pacbell)\.net$/i
/\.(chic)\d*\.(pbi)\.net$/i
# for sbcglobal, chi.ca is Chico CA, not "Chicago, Canada"
/\.(chi)\d+(ca)\.(sbcglobal)\.net$/i
# "alb" is Albuquerque to qwest.net, Albany NY to others
/^(alb)\-[a-z]{4}\-\d{2}\.inet\.(qwest)\.net$/i
# End special cases
/(mae\-west)/i
/(mae\-east)/i
/(mae\-dallas)/i
# sfinx is major networking point in Paris
/(sfinx)/i
# big city(s)
/(moscow)/i
# nyroc.rr.com has subhosts throughout New England
/\.([a-z]{6}).*\.nyroc\.rr\.com$/i
# hot.rr.com and texas.rr.com also have subhosts
/\.([a-z]{6}).*\.hot\.rr\.com$/i
/\.([a-z]{6}).*\.texas\.rr\.com$/i
/\.([a-z]+\.[a-z]+)\.us$/i
/\.([a-z]+)\.pnap\.net$/i
/\.([a-z]{3})\d*\.flash\.net$/i
/\.([a-z]{3})\d*\.lac\.alter\.net$/i
/\.([a-z]{3})\d*\.alter\.net$/i
/\.([a-z]+)\d*\.mindspring\.net$/i
/\.([a-z]{4})\d*\.exodus\.net$/i
/\.([a-z]+)\d*\.agis\.net$/i
/\.([A-Z][a-z]+)\d*\.fnsi\.net$/
/\.([a-z]{3})\d*\.above\.net$/i
/\.([a-z]{3})\d*\.([a-z]{2})\.above\.net$/i
/\.([a-z]{3})\d*\.gblx\.net$/i
/\.([a-z]{3})\-bb\d\.cerf\.net$/i
/\.([a-z]{3})\.globalcenter\.net$/i
/\.([a-z]{3}\-[a-z]{2})\-gw\d*\.icg\.net$/i
/\.([a-z]{3}\-[a-z]{2})\.icg\.net$/i
/^([a-z]{3}\-[a-z]{2})\-gw\d*\.icg\.net$/i
/\.([A-Z].*?)\d*\.t3\.ans\.net$/
/\.x([a-z]+)\d*\-[a-z0-9]+\.bbnplanet\.net$/i
/\.([a-z]+)\d*\-[a-z0-9]+\.bbnplanet\.net$/i
/\.bais([a-z]+)\d*\-[a-z0-9]+\.bbnplanet\.net$/i
/\.([a-z]+)\.att\.net\.([a-z]{2})$/i
/^([a-z]{4}[a-z]*).*\.ip\.att\.net$/i
/\.([a-z0-9]{5})\.ip\.att\.net$/i
/\.([a-z]{2})([a-z]+).*\.att\.net\.[a-z]{2}$/i
/\.([a-z]{6})\d*\.[a-z]{2}\.(?:ra|bb|ce|da|wh)\.verio\.net$/i
/\.([a-z]{3})[\d\-]+\.verio\.net$/
/^([a-z]+)\d*\.via\.verio\.net$/
/\.([a-z]{6})\d*\.home\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.home\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.home\.com$/i
/\.([a-z]+)\d*\.([a-z]{2})\.wave\.home\.com$/i
/\.([a-z]{6})\.swbell\.net$/i
/\.([a-z]{3})\d([a-z]{2})\.swbell\.net$/i
/\.([a-z]+)\d*\.teleglobe\.net$/i
/\.[a-z]+\d*_([a-z]+)\.teleglobe\.net$/i
/\-([a-z]+)\.teleglobe\.net$/i
/\.([a-z]+)\d*\.cw\.net$/i
/\-([a-z]+)\.eu\.cw\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.insnet\.cw\.net$/i
/\-([a-z]+)\d*\.(de)\.cw\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.ins\.cw\.net$/i
/\.([a-z]+)\d*\.ins\.cw\.net$/i
/\.([a-z]+)\d*\.(gbb\.uk)\.uu\.net$/i
/\.([a-z\-]+)\d*\.([a-z]{2})\.da\.uu\.net$/
/\.([a-z]+)\d*\.da\.uu\.net$/
/\.([a-z]+)\d*\.([a-z]{2})\.uu\.net$/i
/\.([a-z\-]+)\-.*?\.([a-z]{2})\.dial\-access\.att\.net$/
/\.([a-z\-]+)\-.*?\-([a-z]{2})\.dial\-access\.att\.net$/
/^e\d.*?\-([a-z]+)\-ad\-.*?\.espire\.net$/
/^([a-z]+)\-([a-z]{2})\-.*?\.espire\.net$/i
/^([a-z]{4}).*\.([a-z]{2})\.us\.prserv\.net$/
/^([a-z]+).*\.([a-z]{2})\.prserv\.net$/
/^([a-z]{3})\-[a-z]{4}\-\d{2}\.inet\.qwest\.net$/i
/^([a-z]{4})\d*\-[a-z]{4}\d*\.([a-z]{2})\.inet\.qwest\.net$/i
/^([a-z]+)\-.*\.inet\.qwest\.net$/i
/\.([a-z\-]+)\d*\.([a-z]{2})\.us\.da\.qwest\.net$/i
/\.([a-z]{4})\.qwest\.net$/i
/^([a-z]{3})\d\-core\d+\-.*?\.atlas\.digex\.net$/
/^([a-z]+\.[a-z]+)\.southwest\.us\.psi\.net$/i
/^([a-z]+)\d*\.([a-z]{2})\.central\.us\.psi\.net$/i
/([a-z]+\.[a-z]{2})\.us\.psi\.net$/i
/\.([a-z\-]+)\d*\.([a-z]{2})\.pub-ip\.psi\.net$/i
/([a-z]+)\d*\.dialup\.canada\.psi\.net$/i
/\.([a-z]+\.[a-z]{2})\.eu\.psi\.net$/i
/\.([a-z]+\.[a-z]{2})\.psi\.net$/i
/([a-z]+)\..*tier\d*\.([a-z]{2})\.psi\.net$/i
/\.([a-z]+)\d*\.atlas\.psi\.net$/i
/\.([a-z]+)\d*\.psie\.net$/i
/^dialup.*?\.(.*?)\.uswest\.net$/i
/\.([a-z]{4})\.uswest\.net$/i
/\.(.*?)\.juno\.com$/i
/\.([a-z]+)\d*\.eu\.level3\.net$/i
/\.([a-z]+)\d*\.level3\.net$/i
/\.([a-z]+)\d*\.l3\.net$/i
/^[a-z]+\d*\-([a-z]+)\d*\-gw\.customer\.alter\.net$/i
/([a-z]+)\d*\.([a-z]{2})\.alter\.net$/i
/^sl\-(?:bb|gw|dr|st)\d+\-(.*?)\-.*?\.sprintlink\.net$/
/^sdn\-bb\d*\-(.*?)[\d\-]*\.dialsprint\.net$/
/^sdn\-dn([a-z]+)[\d\-]*T1\.dialsprint\.net$/
/^sdn\-ar\-\d*([a-z]+)P\d*\.dialsprint\.net$/
/^sdn\-ap\-\d*([a-z]+)P\d*\.dialsprint\.net$/
/^sdn\-ap\-\d*([a-z]+)\d*[A-Z]\.dialsprint\.net$/
/\.([a-z]+)\d*\.sprint\-canada\.net$/i
/\.([a-z]+)\.telstra\.net$/i
/(madrid)/i
/([a-z]{4})\.([a-z]{2})\.voyager\.net$/i
/([a-z]+)\d*gw\d*\.([a-z]+)\.insnet\.net$/i
/^([a-z]+).*\.k\.(se)\.telia\.net$/i
/^([a-z]+).*\.(se)\.telia\.net$/i
/([a-z]+)\.us\.telia\.net$/i
/\.([a-z]{5}).r\d*\.us\.telia\.net$/i
/^([a-z]+)\-[a-z0-9\-]*\.telia\.net$/i
/([a-z]+)\.([a-z]{2})\.telia\.net$/i
/([a-z]+)\.telia\.net$/i
/([a-z]+)\-[a-z]+\d*\.ntt\.net$/i
/([A-Z][a-zA-Z]+)\-[a-z]+\d*\.IIJ\.Net$/
/([A-Z][a-zA-Z]+)\.IIJ\.Net$/
/\.([A-Z]+)\d*\.([A-Z]{2})\.GBB\.UU\.NET$/
/\.([A-Z]+)\d*\.([A-Z]{2})\.UU\.NET$/
/\.([a-z]+)\d*\.pbi\.net$/i
/([a-z]+)\d*\.([a-z]{2})\.eqip\.net$/i
/\.([a-z]+)\d*\.digex\.com$/i
/([a-z]+)\-core\..*?\.netaxs\.net$/i
/^([a-z]+)\-gw\..*?\.netaxs\.net$/i
/\.([a-z]{3})\.netaxs\.net$/i
/([a-z]+)\-core\..*?\.netaxs\.com$/i
/^([a-z]+)\-gw\..*?\.netaxs\.com$/i
/\.([a-z]{3})\.netaxs\.com$/i
/([a-z]+)\d*\.([a-z]{2})\.us\.netrail\.net$/i
/\.([a-z]+)\d*\.netrail\.net$/i
/^bx\d*\.([a-z]+).*\.bellnexxia\.com$/i
/^core\d*\-([a-z]+).*\.in\.bellnexxia\.net$/i
/^dis\d*\-([a-z]+).*\.in\.bellnexxia\.net$/i
/^gip\-([a-z]{4})\-([a-z]{2}).*\.gip\.net$/i
/^([a-z]+).*\.gip\.net$/i
/^([a-z]{4})\-.*\.([a-z]{2})\.eu\.net$/i
/\-([a-z]{4})\.([a-z]{2})\.eu\.net$/i
/^([a-z]{4})\-.*\.eu\.net$/i
/\.([A-Z][a-z]+\.[A-Z][a-z]+)\.EU\.net$/
/\.([a-z]+)\.([a-z]{2})\.eu\.net$/i
/\.([a-z]+)\.eunet\.([a-z]{2})$/i
/([a-z\-]+)\.opentransit\.net$/i
/\.([a-z]+)\d*\.us\.onyx\.net$/i
/\.([A-Z][a-z]+)\.raei\.francetelecom\.net$/
/\.([a-z]+)\.francetelecom\.net$/i
/^([a-z]+)\d+.*\.wcg\.net$/i
/^sbc\-([a-z]+)\..*\.wcg\.net$/i
/([a-z]+\-[a-z]+)\-\d+\.isdnet\.net$/
/([a-z]+)\d*\.isdnet\.net$/
/([a-z]+)\d*\.ipergy\.com$/
/([A-Z]{3})\.router\.COLT\.NET$/
/\.([a-z]+)\.router\.([a-z]{2})\.colt\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.colt\.net$/i
/([A-Z][a-z]+)\.core\.comstar\.ru$/
/^([a-z]{2})([a-z]{3})\d+\-.*\.ebone\.net$/i
/^([a-z]+)\-.*\.her\.rr\.com$/i
/^([a-z]+)\-.*\.cox\.rr\.com$/i
/\-([a-z]{4})\.cox\-internet\.com$/i
/\.([a-z]{4})\.cox\-internet\.com$/i
/\.([a-z]{6}).*\-brt\d*\.rr\.com$/i
/\.([a-z]{6}).*\-rtr\d*\.[a-z]+\.rr\.com$/i
/\.([a-z]{6}).*\-ubr\d*\.[a-z]+\.rr\.com$/i
/^(.*?)\d*\-.*\.([a-z]{2})\.rr\.com$/i
/\.([a-z]+)\.rr\.com$/i
/([a-z]{2})([a-z]{3})\.ecs\.ip\.net$/i
/([a-z]{2})([a-z]{3})\.ecs\-ip\.net$/i
/\.([^\.]*?)\.cais\.net$/i
/^([a-z]+).*\.atlas\.icix\.net$/i
/([a-z]+)[^\.]*\.gw\.epoch\.net$/i
/([a-z]{2})\-([a-z]{3})\-.*\.chellonetwork\.com$/i
/^([a-z]{5})\d*\-t.*\.kpnqwest\.net$/i
/([a-zA-Z]+)\-.r\d*\.([A-Z\.]+)\.kpnqwest\.net$/
/([a-zA-Z]+)\-.r\d*\.([A-Z\.]+)\.KPNQwest\.net$/
/([a-zA-Z]+)\-.q[\d\-]*\.([A-Z\.]+)\.kpnqwest\.net$/
/\.([A-Z][a-z]+)\.([A-Z]{2})\.KPNQwest\.net$/
/\.([a-z]+)\-sng\.([a-z]{2})\.kpnqwest\.net$/i
/\.([a-z]+)\-kq\d*\.([a-z]{2})\.kpnqwest\.net$/i
/\.([a-z]+)\-kpn\d*\.([a-z]{2})\.kpnqwest\.net$/i
/\.([A-Z][a-z]+)\-.*\.([A-Z]{2})\.KPNQwest\.net$/
/\.([a-z]+)\-.*\.([A-Z]{2})\.kq\-gts\.net$/i
/\.([a-z]+)\d*\.([A-Z]{2})\.kq\-gts\.net$/i
/r\d*\.([a-z]+)\-*[a-z]*\.surf\.net$/i
/\.([A-Z][a-z]+)\d*\.surf\.net$/
/\.(us-[a-z]+)\.concert\.net$/i
/\.([a-z]{2}-[a-z]+)\d*\.concert\.net$/i
/\.(.*?)\.ipcore\.viaginterkom\.de$/i
/\.(.*?)\.cr\.ision\.net$/i
/\-([a-z]+)\d*\.win\-ip\.dfn\.(de)$/i
/\-([a-z]+)\d*\.g\-win\.dfn\.(de)$/i
/\-([a-z]+)\d+.*\.g\-win\.dfn\.(de)$/i
/\.([a-z]+)\-bbr\-\d*\.carrier1\.net$/i
/\.([a-z]+)\-icr\-\d*\.carrier1\.net$/i
/\.([a-z]+)\.skynet\.(be)$/i
/\-([a-z]{3})\-p[\d\-]*\.atdn\.net$/i
/^rr\-([a-z\-]+)\.atdn\.net$/i
/\.([a-z]+)\.nikoma\.net$/i
/(.*)\-core\.ja\.net$/i
/\.(.*?)\-scr\.ja\.net$/i
/\.(.*?)\-bar\d*\.ja\.net$/i
/^r\d([a-z]+)\.vianw\.net$/i
/([a-z]+)\.([a-z]{2})\.vianw\.net$/i
/\.([a-z]+)\.vianw\.net$/i
/\.([a-z]+)\d*\.bart\.net$/i
/\-([a-z]{3})[a-z]*\.([a-z]{2})\.speedport\.net$/i
/\.([a-z]+)\d*\.versatel\.net$/i
/\.([a-z]+)\d*\.versatel\.(de)$/i
/\.dsl\.([a-z]+)\.ameritech\.net$/i
/\.([a-z]+)\.([a-z]{2})\.ameritech\.net$/i
/\.dialup\.([a-z]{6})\.ameritech\.net$/i
/\.([a-z]{6})\.ameritech\.net$/i
/([a-z]+)\d*\.us\.lightning\.net$/i
/\.([a-z]+)\d*\.core\.sgh\-net\.(de)$/i
/([a-z]{6})\.infoave\.net$/i
/\.([a-z]+)\d*\-([a-z]{2})\.us\.xo\.com$/i
/\.([a-z]+)\d*\-([a-z]{2})\.us\.xo\.net$/i
/\.([A-Z]+)\.splitrock\.net$/
/([a-z]+)\-([a-z]+)\.winstar\.net$/i
/\.([a-z]+)\d*\-bb\d*\.winstar\.net$/i
/([a-z]+)\-\d*\.winstar\.net$/i
/\.([a-z]+)\d*\.globix\.net$/i
/\.([a-z]{6})\d*\.cv\.net$/i
/([a-z]+)\d*\.belwue\.de$/i
/\.([a-z]+)\.esat\.net$/i
/^([A-Z][a-z]+).*[A-Z].*\.RoSprint\.net$/
/^([A-Z][a-z]+).*[A-Z].*\.RosSprint\.net$/
/\.([A-Z][a-z]+)\.Rostelecom\.ru$/
/\.([a-z]+)\.tlct\.net$/i
/^([a-z]{5}).*\.mw\.mediaone\.net$/i
/\.([a-z]{3})\.mediaone\.net$/i
/\.([a-z]+)\.([a-z]{2})\.rcn\.net$/i
/\.([a-z]+)\.([a-z]{2})\.dialup\.rcn\.com$/i
/^([a-z]{2})\-([a-z]+)\-us\d*\.javanet\.com$/i
/\.([A-Z][a-z]+)\.easynet\.de$/
/\.([a-z]+)\.router\.easynet\.net$/i
/([a-z]{3})\.([a-z]{2})\.easynet\.net$/i
/\.([a-z]{3})\.embratel\.net\.(br)$/i
/\.([a-z]{3})\.terra\.com\.br$/i
/^rmw[a-z]\-([a-z]+)\-([a-z]{2}).*\.nw\.mediaways\.net$/i
/^([A-Z][a-z]+)\-DGIX\.mediaWays\.net$/
/^([a-z]+)[\d\-]*\.arcor\-ip\.net$/i
/\.([a-z]+)\-([a-z]{2})\.dsl\.cnc\.net$/i
/^([A-Z]+)\-[A-Z]+\-[A-Za-z]\d*\.Bbone\.vsnl\.net\.(in)$/
/^([a-z]+)\-vsb\-stm\d*\.Bbone\.vsnl\.net\.(in)$/i
/vsb\-(.*?)\-stm\d*\.Bbone\.vsnl\.net\.(in)$/i
/^([a-z]+)\-.*\-atm.*\.bbone\.vsnl\.net\.(in)$/i
/\.([a-z]+)\.vsnl\.net\.(in)$/
/\.([a-z]+)\.vsnl\.com$/i
/\.([a-z]+)\.eurocyber\.net$/i
/\.([a-z]+)\.eli\.net$/i
/\.([A-Z][a-z]+)\.ST\.NET$/
/\.([a-z]+)\.bellsouth\.net$/i
/([a-z]+)[\-\d]+\.bellsouth\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.bredband\.com$/i
/\.([a-z]+)\d*\.eircom\.net$/i
/\.([a-z]+)\.te\.net$/i
/\.([a-z]+)\.indigo\.(ie)$/i
/^([a-z]{4})\-.*\-gw\.nero\.net$/i
/\.([A-Z][a-z]+)\d*\.net\.reach\.com$/i
/\.([a-z]+)\-core\d*\.net\.reach\.com$/i
/\.([a-z]{3})\.tsnz\.net$/i
/\.([a-z]+)\.netsurf\.(de)$/i
/\.([a-z]+)\d*\.pacbell\.net$/i
/\.([a-z]+)\.oar\.net$/i
/\.([a-z]+)\d*\.([a-z]{3})\.sonera\.net$/i
/^pos[\d\-]+\.([a-z]+).*\.adelphia\.net$/i
/^([a-z]{2})\-([a-z]+).*\.[a-z]{6}\.adelphia\.net$/i
/\.([a-z]{6})\.adelphia\.net$/i
/\.([a-z]+)\.adelphia\.net$/i
/\.([a-z]+)\d*\.adelphiacom\.net$/i
/\.([a-z]+)\.adsl\.bellatlantic\.net$/i
/\.([a-z]+)\d*\.dbn\.net$/i
/\.([a-z]+)\.inet\-th\.net$/i
/\.([a-z]+)\.twtelecom\.net$/i
/\.([a-z]+)\-bbr\d*\.twtelecom\.net$/i
/\.([a-z]+)\d*\.([a-z]+)\.excitehome\.net\.(au)$/i
/\-([A-Z]{3})\.ecrc\.net$/
/\.([a-z]+)\.sbcglobal\.net$/i
/\.([a-z]+)\d+([a-z]+)\.sbcglobal\.net$/i
/^([a-z\-]+)\d*\-.*\.rdsnet\.(ro)$/i
/\.([a-z]+)\-.*\.bbn\.web\.ad\.(jp)$/i
/\.([a-z]+)\.good\.net$/i
/\.([a-z]+)\.ukcore\.bt\.net$/i
/\.([a-z]+)\.fixed\.bt\.net$/i
/\.([a-z]{2})\-([a-z]{3})\d*\.eu\.bt\.net$/i
/\.([a-z]+)\d*\.one\.net$/i
/core\d*([a-z]+)\.impsat\.net\.br$/i
/\.([a-z]+)\.broadwing\.net$/i
/\.([a-z]+)\-r\d*\.tpnet\.(pl)$/i
/\.([a-z]+)\.sdi\.tpnet\.(pl)$/i
/\.([a-z]+)\d*\.idc\.ad\.(jp)$/i
/\.([a-z]+)\.att\.ne\.jp$/i
/\.([A-Z]+)\.SPIN\.AD\.(JP)$/
/\.([a-z]+)\.netcarrier\.net$/i
/^([a-z]+)\-gw.*\.gw\.odn\.ad\.(jp)$/i
/^JT\-([a-z]+)\-.*\.sinet\.ad\.(jp)$/i
/^([a-z]+)\-.*\.sinet\.ad\.(jp)$/i
/\.([a-z]{6})\d*\.(?:atgi|telepacific)\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.jippii\.net$/i
/\.([a-z]+)\-([a-z]{2})\-us\.earthlink\.net$/i
/\.([a-z]{2})\-([a-z]+)\d*\.ne\.earthlink\.net$/i
/\.([a-z]+\.[a-z]{2})\.insync\.net$/i
/([a-z]+)\-([a-z]{2})\.ndial\.mountain\.net$/i
/\.([a-z]+)\d*\.net\.tiscali\.com$/i
/\.([a-z]+)\d*\.ip\.tiscali\.net$/i
/\.([a-z]+)\.net\.tiscali\.([a-z]{2})$/i
/\.([a-z]+)\d*\.core\.euro\.net$/i
/\.([a-z]+)\.fibr\.net$/i
/([A-Z][a-z]+).*\.isnet\.is$/
/[a-z]{2}\d*\-([a-z]+)\d*\-.*\.dsl\.net$/i
/\.([a-z]+)\d*\.atlas\.cogentco\.com$/i
/^([a-z]+)\-core\-\d*\.tamerica\.net$/i
/^([a-z]+)\d*\-core\d*\.tamerica\.net$/i
/\.([a-z]+)\.netins\.net$/i
/\.([a-z]{6}).*\.bb\.telus\.com$/i
/^([a-z]{6}).*\.bb\.telus\.com$/i
/^([a-z]{6}).*\.ca\.telus\.com$/i
/\-([a-z]{6})\.ip\.grouptelecom\.net$/i
/\.([a-z]+)\.([a-z]{2})\.grouptelecom\.net$/i
/\.([a-z]+)\d*[bd]\d*\.sunrise\.(ch)$/i
/\.([a-z]+)\d*\.focaldata\.net$/i
/\.([a-z]+)\d*\.verizon\-gni\.net$/i
/\.([a-z]+)\d*\.dsl\-w\.verizon\.net$/i
/\.([a-z]+)\.seabone\.net$/i
/\-([a-z]{2})\-([a-z]+)\d*\.seabone\.net$/i
/\.([a-z]{6}).*\.[a-z]r\.deltacom\.net$/i
/\.([a-z]+)\.(mng)\.net$/i
/\.([a-z]+)\d*\.savvis\.net$/i
/^([a-z]+).*\.savvis\.net$/i
/\.([a-z]+)\.cetlink\.net$/i
/\.([a-z]+)\d*\.inflow\.net$/i
/\.([a-z]+)\-([a-z]{2})\.hexcom\.net$/i
/\.([a-z]+)\d*\.dsl\.speakeasy\.net$/i
/\.([a-z]+)\d*\.flagtel\.com$/i
/\.([A-Z]+)\d+W\.core\.algx\.net$/
/^([a-z]+)\d*\-core.*\.atlas\.algx\.net$/i
/\.([a-z]+)\d*\.network\.coloco\.com$/i
/\.([0-9a-z]+?)\d*\.([a-z]{2})\.comcast\.net$/i
# below for odd special cases like srp-1-1-rr01.woodlawn.md.md02.comcast.net
/\.([a-z]+)\d*\.([a-z]{2})\.(?:pa|md|mich|dc|nj|core|boston|panjde|michigan|indiana)\d*\.comcast\.net$/i
/\-([a-z]+)\-\d*\.(cn)\.net$/i
/\.([a-z]{5}).r\d*\.aleron\.net$/i
/([a-z]{5})\.aleron\.net$/i
/\.EB\-(.*?)\d*\.red\.rediris\.(es)$/
/\.([a-z]+\.[a-z]{2})\.charter\.com$/i
/^([a-z]+)\-.*\.([a-z]{2})\.charter\.com$/i
/^([a-z]+)\-.*\.charter(tn)\.net$/i
/^([a-z]+)\d*\.bb\.netscalibur\.net$/i
/^ro\-(.*?)\.indosat\.net\.(id)$/i
/\.([a-z]+)\.indo\.net\.(id)$/i
/\.([a-z]+)\.pesat\.net\.(id)$/i
/^([A-Z]{5})\-CORE.*\.USIT\.NET$/
/^usit\-gw\d*\-([a-z]{5})\-.*\.usit\.net$/
/usit\-([a-z]{5})\-.*\.usit\.net$/
/\.([a-z]{3})\.iprimus\.net\.(au)$/i
/\.([a-z]+)\d*\.pipex\.net$/i
/\.([a-z]+)\d*\.paetec\.net$/i
/^core\d*\-([a-z]+)\-.*\.bb\.attcanada\.(ca)$/i
/\-([a-z]+)\.bb\.attcanada\.(ca)$/i
/\.([a-z]+)\.connect\.com\.(au)$/i
/\.([a-z]+)\.([a-z]{2})\.([a-z]{2})\.knology\.net$/i
/\.([a-z]+)\.ocn\.ne\.(jp)$/i
/^([a-z]+)\.*\.alltel\.net$/i
/^([a-z]+)[\-\d]+\.alltel\.net$/i
/\.([a-z]+)\d*\.us\.mfnx\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.mfnx\.net$/i
/\.([a-z]{3})\d*\.mfnx\.net$/i
/^([a-z]+)GW\d*\.v4\.kddi\.ne\.(jp)$/i
/^([a-z]+)CORE\d*\.v4\.kddi\.ne\.(jp)$/i
/^([a-z]+)RT.*\.v4\.kddi\.ne\.(jp)$/i
/\.([a-z]+)\d*\.([a-z]{2})\.sdn\.co\.za$/i
/\.([a-z]+)\-([a-z]{2})\.jobe\.net$/i
/\-([a-z]+)\.comindico\.com\.(au)$/i
/\-([a-z]+)\.comindico\.net\.(au)$/i
/\-([a-z]+)\.comindico\.net$/i
/^([a-z]{6})(?:core|edge)\d*\.transit\.tds\.net$/i
/\.([a-z]+)\.clix\.net\.(nz)$/i
/^([a-z]+)\d*\-pos.*\.sunet\.(se)$/i
/\.([a-z]+)\.dial\.netzero\.com$/i
/\.([a-z]+)\d*\.([a-z]{2})\.attbb\.net$/i
/\.([a-z]+)\.telkom\.net\.(id)$/i
/\-([a-z]+)\.cssi\.renater\.(fr)$/i
/^([a-z]+)\.cssi\.renater\.(fr)$/i
/^([a-z]+)\-.*\.cssi\.renater\.(fr)$/i
/^([a-z]+)ng\-.*\.abilene\.ucaid\.edu$/i
/^([a-z]+)\-.*\.abilene\.ucaid\.edu$/i
/^([a-z]{4}).*\-?(?:pos|fex|atm|gew)\d*.*\...\.([a-z]{2})\.(cox)\.net$/i
/\.[a-z0-9]{2}\.([a-z]{2})\.(cox)\.net$/i
/\.([a-z]+)\d*\.pacific\.net\.(au)$/i
/\.([a-z]+)\d*\.attens\.net$/i
/(?:nvl|bcs|son|jal)\-([a-z]+)\-.*\.uninet\.net\.(mx)$/i
/\.([a-z]+)\.cbn\.net\.(id)$/i
/^([a-z]+)\d*\-.*\.starnetusa\.net$/i
/\.([a-z]+)\.viawest\.net$/i
/^([a-z]+)\-.*\.rt\-comm\.(ru)$/i
/\.([a-z]+)\d*\-g\d*\.mcbone\.net$/i
/\.([a-z]+)\.([a-z]{2})\.ifxcore\.net$/i
/^([a-z]+)([a-z]{2})\-\d+\..*\.prairienet\.net$/i
/^([a-z]+)\-\d+.*\.prairienet\.net$/i
/\.([a-z]+)\d*\.kpn\.([a-z]{2})$/i
/\.([A-Z]+)\.([A-Z]{2})\.net\.DTAG\.DE$/i
/\.([a-z]+)\.([a-z]{2})\.vcn\.com$/i
/\.([a-z]+)\-cr\d*\.ix\.singtel\.com$/i
/\.([a-z]+)\.rad\.net\.(id)$/i
/\.([a-z]+)\.ib\.cwidc\.net$/i
/\.([a-z]+)\d*\.(?:nb|ov|dr)\.home\.(nl)$/i
/^([a-z]+)\d*\-.*\.tpgi\.com\.(au)$/i
/\.([a-z]+)\.([a-z]+)\.yubc\.net$/i
/\.([a-z]+)\.kolumbus\.net$/i
/^([a-z]+)M\d*.*\.ttnet\.net\.(tr)$/
/\-nxr([a-z]+)\d*\.intelignet\.com\.(br)$/i
/^([a-z]{2})\-([a-z]{3}).*\.aorta\.net$/i
/grt([a-z]{3})[a-z]{2}\d*\.ri\.telefonica\-data\.net$/i
/\-([a-z]+)\.nap\.telefonicamundo.([a-z]{2})$/i
/\.([a-z]{6})\-.*\.nw\.nuvox\.net$/i
/^([a-z]+).*\.([a-z]{2})\.eurorings\.net$/i
/\.([a-z]+)\.metrored\.net\.(br)$/i
/\.([a-z]+)\d*\.[a-z]+\.optusnet\.com\.(au)$/i
/^A([A-Z].*?)\-\d.*\.abo\.wanadoo\.(fr)$/
/^Mix\-([A-Z].*?)\-\d.*\.abo\.wanadoo\.(fr)$/
/\-([a-z]*).*\.grnet\.(gr)$/i
/\.([a-z]+)\.core\.hea\.net$/i
/^([a-z]+)\d*\.hs\.telusplanet\.net$/i
/[\.\-]([a-z]+)\.primustel\.com$/i
/[\.\-]([a-z]+)\.fast\.net$/i
/([a-z]+)\.mex\.ad\.jp$/i
/\.([a-z]+)\.choiceone\.net$/i
/\.([a-z]+)\.[a-z]{2}\.videotron\.(ca)$/i
# the (ca) below is because rogers.com is in Canada (I'm cheating a bit)
/([a-z]+)\.phub\.net\.(ca)ble\.rogers\.com$/i
# codes below from http://www.makr.dk/go.php3?reversedns
/\.([a-z]+)\d*\.ip\.tele\.(dk)$/i
/\.([a-z]+)\d*\.x\-telecom\.net$/i
/\.([a-z]+)\.datapipe\.net$/i
/^([a-z]+).*\.crnet\.(cr)$/i
/^([a-z]+).*\.sympatico\.(ca)$/i
# geant.net gives country codes only (but geant2 gives more!)
/\.([a-z]{2})\.(geant)\.net$/i
/\.([a-z]{3})\.([a-z]{2})\.geant2\.net$/i
# shawcable gives Canadian territory only, ca is Canada
/\.([a-z]{2})\.shaw(ca)ble\.net$/i
/^([a-z]+)ISP.*\.core\.(wi)scnet.net$/i
/^([a-z]+)vhub.*\.core\.(wi)scnet.net$/i
/^([a-z]+)SD.*\.site\.(wi)scnet.net$/i
/^([a-z]+)\-gw\d*\.(nordu)\.net$/i
/\.([a-z]+)\.centurytel\.net$/i
/\.(brunet\.bn)$/i
/\.([a-z]+)\d*\.kkf\.net$/i
/\.([a-z]+)[\-\d]*\.mediascape\.net$/i
/^([a-z]+).*\.(ak)fiberstar.net$/i
/^([a-z]+).*\.(voicenet)\.net$/i
/\.([a-z]{2}\-[a-z]+).*\.utfors\.net$/i
/\-([a-z]+)\.nni\.com$/i
/\.([a-z]+\.[a-z]+)\.gramtel\.net$/i
/\-([a-z]+)\.go180\.net$/i
/^([a-z]+).*\.gnaps\.net$/i
/\-([a-z]+\-[a-z]{2})\.naii\.net$/i
/\.([a-z]+)\-.*\.peer1\.net$/i
/\.([a-z]+)\.he\.net$/i
/\.([a-z]+)\-.*\.adsl\.junction\.net$/i
/\.([a-z]+)\.stormnet\.co\.(za)$/i
/\.([a-z]+)\.cfu\.net$/i
/^([a-z]+)\d*.*\.router\.demon\.net$/i
/^([a-z]+)\d*.*\.router\.([a-z]{2})\.demon\.net$/i
/\.([a-z]+)\.transedge\.com$/i
/\-([a-z]+)\.usinternet\.com$/i
/\.([a-z]+)\-([a-z]{2})\-gw\d*\.grandecom\.net$/i
/\.([a-z]+)\.grandecom\.net$/i
/^core\-(.*?)\-.*\.forthnet\.(gr)$/i
/^([a-z]{6}).*\.mcleodusa\.net$/i
/^([a-z]+).*\.swip\.net$/i
/^([a-z]+).*\.telkom\-ipnet\.co\.za$/i
/\.([a-z]+)\.nv\.net\.(il)$/i
/\.([a-z]+)\d*\.hopone\.net$/i
/\.([a-z]+)\.accretive\-networks\.net$/i
/\.([a-z]+)\.inter\.net\.(il)$/i
/\.([a-z]+)\.iconz\.net\.(nz)$/i
/\.([a-z]+)\d*\.equant\.net$/i
/\-([a-z]+)\d*\.funet\.(fi)$/i
/^([a-z]+).*\.popsite\.net$/i
/\.([a-z]+)\.nac\.net$/i
/\.([a-z]+)\.acs(a)las(k)a.net$/i
/\.([a-z]+)\.access\.net$/i
/\.([a-z]+)\d*\.firstlinknetworks.com$/i
/\.([a-z]+)\d*\.komtel\.net$/i
/\.(monaco)\.net$/i
/\.([a-z]+)\.megapath\.net$/i
/\.([a-z]+)\.mdsg\-pacwest\.com$/i
/\.([a-z]+)\d*\.broadbandip\.net$/i
/\.([a-z]+)\.([a-z]{2})\.ena\.net$/i
/^([a-z]+)\.pop\-ce\.rnp\.(br)$/i
/^([a-z]{3})\-.*?\.([a-z]{2})\.lambdanet\.net$/i
/\.([a-z]{2})\.(lambdanet)\.net$/i
/\.([a-z]+)\d*\.([a-z]{2})\.gtsce\.net$/i
/\.([a-z]+)\.hostworks\.net\.(au)$/i
/\.([a-z]+)\d*\.llnw\.net$/i
/\-([a-z]+)\-b\d\-\d{2}\.wvfiber\.net$/i
/\.([a-z]+)\.pos.*\.wvfiber\.net$/i
/\-grt([a-z]{3}).*\.red\.telefonica\-wholesale.net$/i
/\.([a-z]+)\.snet\.net$/i
/\.([a-z]+)\d*\.nursat\.net$/i
/\.([a-z]+)\.gldn\.net$/i
/(^[a-z]+).*\.xspedius\.net$/i
/\.([a-z]+)\.dren\.net$/i
/\.([a-z]+)\.([a-z]+)\.hosttech\.com$/i
/\.([a-z]+)\.aarnet\.net\.(au)$/i
/\.([a-z]+)\d*\.ibbn\.di\-net\.(ru)$/i
/^([a-z]{6}).*\.mts\.net$/i
/\.([a-z]{3})\.([a-z]{2})\.frontiernet\.net$/i
/\.([a-z]{6})[a-z0-9]{2}\.dynamic\.covad\.net$/i
/\.([a-z]{6})[a-z0-9]{2}\.covad\.net$/i
/^([a-z]+)cr\d*\-oc.*\.es\.net$/i
/\-([a-z]+)\.bb\.allstream\.net$/i
/\.([a-z]+)\d*\.us\.nlayer\.net$/i
/\.([a-z]+)\d*\.nlayer\.net$/i
/\.([a-z]+)\d*\.pccwbtn\.net$/i
/^([a-z]{3})\-.*\.(ny)sernet\.net$/i
/^([a-z]+).*\.([a-z]{2})\.more\.net$/i
/^([a-z]+)\-.*\.zianet\.com$/i
/\.([a-z]+)\d*\.asianetcom\.net$/i
/^([a-z]+)\-.*\.inet\.ntl\.com$/i
/\.([a-z]+)\.lincon\.net$/i
/\-([a-z]+)\.sanet2\.(sk)$/i
/\.([a-z]+)\d*\.realroute\.net$/i
/^([a-z]+)\-([a-z]+)\-([a-z]+)\-.*\.premianet\.com$/i
/\.([a-z]+)\d*\.oteglobe\.net$/i
/\.([a-z]+)\d*\.bmcag\.net$/i
/\.([a-z]{6})..\.sover\.net$/i
/\.([a-z]+)\.sover\.net$/i
/\.([a-z]{3})\-[a-z0-9]{3}\-(?:core|access)\-\d*\.interoute\.net$/i
/\.([a-z]+\d*)\.([a-z]{2})\.npgco\.com$/i