Firefox Extension Show External IP

I recently had need for a much simpler way of observing my current external IP address than asking Google what my current IP address is.  I tend to frequently swap between proxy servers I have running on my network that are attached to VPNs that offer me a number of egress points on the Internet and I’m always curious what my IP address is since I’ve been doing a lot of tinkering with VyOS recently. I have an upcoming blog post currently in draft that will give you a little more detail soon but for now this post is about a Firefox Extension called Show External IP that I wrote.

I’ve recently had a falling out with Chrome. Its constant crashing for no apparent reason was beginning to grate so I decided to give Firefox a go at being my default browser again. It hasn’t let me down yet so when this little project/requirement popped up and I couldn’t find a pre-made Firefox plugin for the purposes, I thought I’d give developing my own a try.

I change between proxies using FoxyProxy which is a great extension for proxy management and it can even do pattern matching to force traffic to go via a specific proxy. Although I can change proxy quickly with FoxyProxy, I wanted to know what the external IP address of the proxy being used was, so I developed this tiny (5KB) extension.

It doesn’t do anything fantastic, just gets the IP address and shows it to you in a tiny bubble like so…

showextip (1) showextip (2) showextip (3)

I’ve submitted the addon to AMO where, once it has been reviewed (and hopefully approved) it should be signed and available for installation. It’s an MIT licence extension which means you can do what you like with it. There’s nothing mind bendingly difficult in there but it’s not bad for knowing nothing about the Mozilla SDK High Level APIs less than 24 hours ago. :)

If you have feedback or comments, leave them below.


PowerShell Parameters for Modules

One for the personal digital scrapbook. When writing PowerShell modules I always have to dig this up as reference material and I’ve added an example as well.

about_Functions_Advanced_Parameters –

Obviously you need to  Export-ModuleMember  when you’ve created the function and save the file as .psm1 to identify it as a PowerShell Module.

After writing my personal use modules, I usually want them to load automatically when I fire up a PowerShell console so I add them to [Environment]::GetFolderPath('mydocuments') + "\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"  usually in a try/catch block.


Upgrading to Azure AD Connect from AADSS

Microsoft recently released to GA (Generally Available) Azure AD Connect which is a much simplified installation and replacement for DirSync and Azure Active Directory Sync Services. Under the hood, it’s the same as Azure Active Directory Sync Services except it improves the installation experience. For an introduction to Azure AD Connect and why you might want to use it, give this place a visit.

I thought that, since I’ve already done a series on Azure Active Directory Sync Services, I’d simply show the process to upgrade from Azure Active Directory Sync Services to Azure AD Connect. It is pretty idiot proof so let’s get to it.

First, download Azure AD Connect. Once you’ve downloaded it, copy it to the server that is currently running DirSync or Azure Active Directory Sync Services and double-click it.

Continue reading Upgrading to Azure AD Connect from AADSS

How to block updates in Windows 10

Microsoft Windows 10 introduces seamless update installation – but what should you do if it’s installing an update or driver that keeps breaking your PC?

On the sly, Microsoft have announced a troubleshooter to block updates that might be giving you problems – yes, you heard me, a troubleshooter.

The article in question is titled: How to temporarily prevent a Windows or driver update from reinstalling in Windows 10 and is KB3073930.

Once there, scroll past the initial few paragraphs and click:

How to block updates in Windows 10

Download the linked file, run it, select Hide Updates then select the update that keeps breaking your machine to hide it until the next driver update that supersedes that is deployed. I personally was battling with an Atheros driver issue that has caused Blue Screen Of Death (BSOD) at every update/release on my trusty old Toshiba R850-169.


Handling website maintenance in IIS

I’m the proud owner of a few websites, all of which run from an IIS 8.5 server. I also help friends and family run a few sites from the same server and some are business sites that, ideally, shouldn’t be  offline for long periods of time. From time-to-time, that server needs a reboot for updates or some other type of maintenance. My friends and family are very understanding that, for the low-low price of free* they occasionally suffer downtime while I patch the server and give it a bounce so they suffer a little website maintenance message.

With some of the websites I help host being business sites, there’s half a chance that a search engine is crawling the site when I’m merrily going about my patching. Having a site become completely unresponsive, or worse, sending a 404 isn’t good for search rankings so it makes sense to use the best solution for dealing with search engines while still being informative for users as well.

While a site is temporarily unavailable, it is best to send an HTTP 503 Service Unavailable status code. Continue reading Handling website maintenance in IIS

Automating upload to Azure Blob Storage

This is my latest effort in an attempt to offer myself slightly more robust backups of my personal website. I’m using PowerShell and Azure PowerShell to automate the process of zipping up a folder (actually my website’s application folder) and its associated MySQL database in to a zip file and finally, as well as storing the zip locally on-disk (yes, I know!…. wait for it!) uploading the file to Azure Blob Storage. Using some new functionality in .NET Framework 4.5 (zip files, yay) and Azure PowerShell to get the job done.

Here’s a quick snippet from the script:

I also ensure I’m optimising my use of Azure Storage by only retaining the latest 4 files in the target container and deleting anything older than 30 days on  the local machine. Run once per week, this will give you one month’s worth of backups and help you sleep a little easier.

Even without the MySQL dump integration, this is a handy script for backing up a folder and all of its child contents then uploading it for safe keeping to Azure Storage…. Continue reading Automating upload to Azure Blob Storage

Configuring Azure Site-to-Site connectivity using VyOS Behind a NAT – Part 4

In the previous posts in this series we went through the process of creating a cross-premises Site-to-Site VPN with Azure by gathering some information about our local network, configuring the Azure Virtual Network and gateway and finally configuring VyOS so that the tunnel connected.

Now that the cross-premises tunnel is connected, in this post we’ll run through the process of creating a Virtual Machine in Azure which will reside in the Virtual Network we created in part 2. Before we start, our current network looks as follows (no VM in Azure).

Continue reading Configuring Azure Site-to-Site connectivity using VyOS Behind a NAT – Part 4

Configuring Azure Site-to-Site connectivity using VyOS Behind a NAT – Part 3

In this, part 3 of the series, we’ll implement the configuration required for VyOS to enable it to become a VPN endpoint with which we can connect to our Azure Virtual Network Gateway to form our Site-to-Site VPN.

If you still haven’t, consider reading part 1 and part 2 of this series to provide the background of our modest network and how we configure Azure to create its side of the VPN cross-premises connection. As a reminder, our network configuration looks as follows (no tunnel and no Azure VM yet).

Continue reading Configuring Azure Site-to-Site connectivity using VyOS Behind a NAT – Part 3

me, on scripting, trance and other subjects i enjoy