How does Netflix detect you’re using a VPN?
When you connect to Netflix they firstly check your IP address geo-data which can be obtained from companies like MaxMind who provide an API that allows you to query any IP address and retrieve location and ISP data back immediately.
Most likely Netflix purchases this data and also compiles it themselves too.
This is first used to determine what Movie & TV show licenses they will display for your viewing pleasure since Netflix U.S and Netflix U.K have different licenses for shows the library ultimately ends up different for us users.
Anyone who has used Netflix with a proxy or VPN would have had the dreaded message:
However they let you browse the library using this and you notice this message only displays when you actually go to play a video.
This is because they are actually detecting if you’re using a VPN or proxy by looking at your DNS request origins.
You can use an obvious proxy or VPN that uses datacenter IP addresses which is clearly not a residential IP and play the video file if your DNS requests are routed through a “safe” DNS proxy.
You may have already guessed this because many content unblocking services for Netflix provide you with “smart DNS” products which only change your DNS request servers.
When you request a subdomain or Netflix CDN servers, your request will be routed through your DNS servers and Netflix will then see which DNS servers are querying them for the IP resolution.
You ---> DNS Server ---> Netflix Server
When you use your own VPN or proxy you will most likely be using OpenDNS or Google DNS servers to query DNS lookups.
If you are a legitimate residential user your ISP will issue you private DNS servers for their own customers that cannot be used by anyone else.
Then when you connect to Netflix and query their DNS they will see the requests coming from a known residential ISP instead of an open free to use DNS server.
Netflix checks if you’re using a VPN or proxy by looking at your IP address and also your DNS resolution server.