Watching and listening to the BBC from abroad
With the Super Saintees back in the SPL, there's a lot more media coverage. Unfortunately, most of this has been on the BBC, and they block access from outside the UK. This includes BBC Alba (streaming through Zattoo), Radio Scotland commentrary (real audio and/or flash), and BBC Sport website highlights (audio and video, using flash).
I'm working around these blocks using a UK VPN egress point. There are a bunch of commercial and non-commercial offerings: In my case, I'm using http://www.hidemynet.com/, which costs $5/month. The setup instructions are very straightforward from my laptop -- it's just a standard PPTP (GRE) VPN.
I did hit one hiccup: The flash based streams (including Zattoo) use a Content Delivery Network for efficiency. In other words, your streaming client is given a server IP address that is as 'close' to you as possible. Since the streaming all seems to be TCP based, this is significant.
Unfortunately, the CDN redirection is implemented using DNS. This meant that, when I was using my standard ISP's DNS settings, I was being redirected to a streaming server in San Jose, even though my IP address was in the UK. The net result was that the video streams were maxing out at around 250kbps, which isn't sufficient. By default, Windows XP continues to use your default DNS settings even when you're pumping all your Internet traffic through the VPN.
There is a fix: After connecting the VPN, I run this script which puts the VPN's DNS settings at the top of the list that Windows uses. I picked up the script from this site.
I'm working around these blocks using a UK VPN egress point. There are a bunch of commercial and non-commercial offerings: In my case, I'm using http://www.hidemynet.com/, which costs $5/month. The setup instructions are very straightforward from my laptop -- it's just a standard PPTP (GRE) VPN.
I did hit one hiccup: The flash based streams (including Zattoo) use a Content Delivery Network for efficiency. In other words, your streaming client is given a server IP address that is as 'close' to you as possible. Since the streaming all seems to be TCP based, this is significant.
Unfortunately, the CDN redirection is implemented using DNS. This meant that, when I was using my standard ISP's DNS settings, I was being redirected to a streaming server in San Jose, even though my IP address was in the UK. The net result was that the video streams were maxing out at around 250kbps, which isn't sufficient. By default, Windows XP continues to use your default DNS settings even when you're pumping all your Internet traffic through the VPN.
There is a fix: After connecting the VPN, I run this script which puts the VPN's DNS settings at the top of the list that Windows uses. I picked up the script from this site.
' KB311218 - Cannot Change the Binding Order for Remote Access Connections ' ======================================================================== ' VBScript that places the \Device\NdisWanIp entry on the top in the ' registry value Bind (multi-string) that is found under the key ' HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\. ' If the entry already is at the top, no registry update is done. Const HKLM = &H80000002 sComputer = "." ' use "." for local computer ' Connect to WMI's StdRegProv class Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ & sComputer & "\root\default:StdRegProv") ' Define registry location sKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Linkage" sValueName = "Bind" oReg.GetMultiStringValue HKLM, sKeyPath, sValueName, arValues arValuesNew = Array() For i = 0 To UBound(arValues) If i = 0 Then If LCase(arValues(i)) = "\device\ndiswanip" Then ' Entry is already first in the list, no point in continuing Exit For Else ' Put NdisWanIp in the first element in the new array ReDim Preserve arValuesNew(0) arValuesNew(0) = "\Device\NdisWanIp" End If End If ' Continue adding the rest of the elements to the new array If LCase(arValues(i)) <> "\device\ndiswanip" Then iCountNew = UBound(arValuesNew) + 1 ReDim Preserve arValuesNew(iCountNew) arValuesNew(iCountNew) = arValues(i) End If Next ' If there are elements to be found in the array, update the ' registry value If UBound(arValuesNew) > -1 Then oReg.SetMultiStringValue HKLM, sKeyPath, sValueName, arValuesNew End If