One in Seven Registered .NET Domain Names Have an Unregistered .COM

It probably won’t come as a surprise to you when I tell you that there are more registered domain names that end with .COM than with .NET. After all, the .COM Top Level Domain (TLD) is still what most non-technical people associate with websites so if you’re planning on starting a new website then you are putting yourself at a disadvantage if you don’t use the .COM. The numbers support this: .COMs outnumber .NETs by almost 7 to 1 (106M registered .COMs vs 15M registered .NETs).

Given the importance of owning the .COM, you would think that hardly anyone would use the .NET version of a domain if the .COM was available to register at no extra cost. As someone who has spent a lot of time thinking about how to come up with domain names, I was curious: how many .NETs have an available .COM and are they any good? This post is about how to figure it out.

If you’d like to skip the nitty gritty technical details, you’re welcome to scroll down a bit and download the full list of .NETs with available .COMs for yourself.

Sampling the zone file

VeriSign publishes something called a zone file each day for both .COM and .NET which contain most of the registered domain names for those TLDs. I previously wrote about how to apply for access if you’re interested in downloading the zone files yourself.

The simplest way to estimate the number of .NET domains with an unregistered .COM is to take a random sample of .NETs from the zone file and then check to see which of the .COMs are still available using a WHOIS query.

There are about 15 million domain names listed in the .NET zone file. By testing the availability of just a few thousand of those domains we can estimate with a high degree of certainty what the overall proportion is.

The first thing we need to do is take a random sample of domains from the .NET zone file. To do this we can run the following Perl command on Mac OS X to randomize the file:

terminal. $ perl -wl -e ‘@f=<>; for $i (0 .. $#f) { $r=int rand ($i+1); @f[$i, $r]=@f[$r,$i] if ($i!=$r); } chomp @f; print join $/, @f;’ >

And to grab the first 2,000 of the now-randomized zone file, we can run the following:

terminal. $ head -n 2000 >

Now that we have a list of 2,000 random domain names from the zone file we can run a WHOIS query on the .COM of each domain to determine which are still available.

When I ran a WHOIS script on the 2,000 random domains from the .NET zone file, I found that 280 of them had available .COMs. In other words about 14% or 1 in 7 registered .NET domain names have an unregistered .COM.

Determining all of the unregistered .COMs

You could run a WHOIS script on all 15 million .NET domain names to check which have available .COMs, but that would take a while and it would also violate VeriSign’s WHOIS service Terms of Use. Fortunately there’s a much easier way to accomplish the same task without executing a single WHOIS query by performing some analysis on the zone files.

Here’s how to do it if you’re on a Unix-based machine:

1. Use diff to determine how the .COM and .NET zone files differ

terminal. $ diff >

Here’s the start of the file (and yes, these are actual domain names):

textfile. < 0—0———————————————————-0//< 0—0———————————————————-2//< 0—0———————————————————-3//< 0—0———————————————————-4//< 0—0———————————————————-5//< 0—0———————————————————-6//< 0—0———————————————————-7//< 0—0———————————————————-8//< 0—0———————————————————-9//< 0—0———————————————————-A//…

Most of the differences are domain names that appear in the .COM zone file but not the .NET (denoted by lines that start with <), but as we will see there are more than a few .NETs which don’t appear in the .COM zone file (denoted by lines that start with >).

2. Extract the unregistered .COMs

Because we only want to look at the domains that have a registered .NET but not .COM we can use grep to extract just the lines that start with >:

terminal. $ grep ‘^>’ >

textfile. > 0—X//> 0-0-0-1//> 0-0213//> 0-0NET//> 0-0V//> 0-1LIFE//> 0-24GYORSSZOLGALAT//> 0-255//> 0-2LIFE//> 0-3LIFE//…

3. Remove the leading > so that just the domain names remain

We can use the cut command to split each line by the space after the > and return just the second section, the domain:

terminal. $ cut -d ‘ ‘ -f2 >

textfile. 0—X//0-0-0-1//0-0213//0-0NET//0-0V//0-1LIFE//0-24GYORSSZOLGALAT//0-255//0-2LIFE//0-3LIFE//

Analyzing the results

To count the number of results you can run:

terminal. $ wc -l> 2215883

According to these results there are 2.2M registered .NET domain names whose .COM is available.

One thing to keep in mind is that the zone files are not 100% accurate which means that you can’t rely on the exact number too heavily because some of the domains will actually be registered. I ran a WHOIS script to check 1,000 random domains from the results and 78 were actually registered. The total number of .NETs with available .COMs is probably more like 2.05M. Since there are 15,327,645 in the .NET zone file, this represents about 13.3% of all the .NET domains, about the same proportion we came up with when we sampled the zone file above.

You can download the results here:

button. Download List of 2.2M .NETs with Available .COM (ZIP, 12.3MB) |

When to consider using one of these domain names

If there is an established website using the .NET you probably don’t want to use the .COM for your own site. Not only will it be hard for you to outrank the established site, but you could get yourself into legal trouble for cybersquatting:

Cybersquatting (also known as domain squatting), according to the United States federal law known as the Anticybersquatting Consumer Protection Act, is registering, trafficking in, or using a domain name with bad faith intent to profit from the goodwill of a trademark belonging to someone else.

However, the odds are good that if the .COM is not registered then the .NET is either not being actively used (otherwise the owner would have started with the .COM or registered it when it became available).

For example, if you are interested in starting a software company and are looking for ideas, you can run the following command to get a list of .NETs with available .COMs:

terminal. $ grep ‘SOFTWARE$’


Scrolling through the results, you’ll find some decent names such as, which is indeed available and is not being used.

If you are looking for an additional method of finding available .COMs, you just might find a great unused name using this technique.

I hope you enjoyed this tutorial. As always if you have any questions please don’t hesitate to drop me a note: or @mhmazur on Twitter.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: