NetFlix Watch Instantly on IOS devices via Proxy

January 7, 2011 at 9:24 pm Leave a comment

It looks like NetFlix Watch Instantly on IOS devices uses a trick to try to avoid proxy servers.  More on that in a bit.

I found this out using a great Mac application called GlimmerBlocker.  It’s a proxy server that blocks ads, enhance web sites, and more.  Kind of like GreaseMonkey for Firefox, except this is in Proxy server form.  It allows you the opportunity to transform the content of everything going through it.  Various programmers create filters, and publish them for anyone else to use.  The site lists ones as specific as a “Facebook ‘Like’ Disabler” and the “Facebook 3rd party block”, to ones such as “SSL:ify Sites”, which forces all communications to Facebook, LinkedIn, Dropbox, and Google to their SSL versions.  If you have kids, you might want “SafeSearch”, which enforces safe-search on Google, Yahoo, and Bing.  You can even chain GlimmerBlocker to a Caching proxy to save bandwidth.

Unfortunately, my iPhones and iPad can’t use NetFlix’s Watch Instantly feature through GlimmerBlocker, or any other proxy for that matter.  Today, using the debug logging built into GB, I was able to figure out why.  Somewhere just before the video starts to play, the NetFlix IOS application tries to perform a CONNECT to the address ihost.netflix.com on port 4343.  Oddly enough, this IP address resolves to 127.0.0.1, which fails since the proxy server is trying to talk to itself.  It appears the the IOS application is listening on port 4343 for this in some sort of strange attempt to keep you from running this through a proxy server.  I don’t know if they are sending this through to the client unencrypted and don’t want the video cached, or what they are trying to do here, but there is a way around it, though not very elegant…

On the proxy server itself, set a hosts file entry for ihost.netflix.com to be the local IP address of the IOS device.  You might have to set a static IP on your iPad, or use a static DHCP reservation, but it works. The problem here is if you have more than one IOS device.

A far more elegant way to handle it would be via a GlimmerBlocker filter that looks for ihost.netflix.com as the destination host, then changes the request to the IP address of the requesting client machine.  This way, you could have multiple IOS devices going through the proxy server simultaneously, and it would translate all the “ihost.netflix.com” requests back to the original IOS device that made the request.  I’ve tried my hand at creating a GB filter to do this, but so far I’ve been unable to.  I’m not experienced at this, so perhaps it is possible without changes to GB, but it appears that there isn’t a variable containing the requesting client’s IP Address.

If you have any ideas on how to make this work with multiple IOS devices via proxy at the same time, feel free to chime in.

Advertisements

Entry filed under: iPhone, Mac, Programming General.

VMware 3.1 vs Parallels 6 launchd winbindd spam in Mac OS Console

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

January 2011
S M T W T F S
« Dec   May »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Most Recent Posts


%d bloggers like this: