Aug 20, 2023 Tags: howto
This post was written on a plane, using one of the tricks below. Please forgive any small typographical errors; I’ll try and fix them later.
Most Delta flights have in-flight Wi-Fi, including international flights, including the one I’m on right now.
Normally you’d have to pay for it (on international flights), which I refuse to do out of principle.
However, Delta currently has an agreement with T-Mobile, giving T-Mobile customers free in-flight Wi-Fi.
Very cool, thanks Delta and T-Mobile! Except for the fine print: while it’s a normal unrestricted1 connection, it only works on mobile devices, not on laptops.
The justification for this is (probably) that Delta and T-Mobile can’t perform their little SMS verification flow from my laptop, but this is bull: iMessage can forward their SMS verification codes just fine, and besides there are other ways for the two to verify that I’m a T-Mobile subscriber (such as asking my for my T-Mobile credentials).
This wasn’t satisfying, so I came up with two quick workarounds. The first definitely works (it’s what I’m using to write this), and the latter probably works (it was what I was originally planning on using because it’s a little simpler, but requires you to not previously connect to inflight Wi-Fi on your phone).
Everything below assumes iOS and macOS, since it’s what I’m on right now, but nothing about either technique should require either OS.
It’s deeply funny to me that this still works in 2023.
The steps here are pretty simple:
Open up your phone’s Wi-Fi settings and make a note of your Wi-FI interface’s MAC
I have no idea where this information appears on Android. On iOS, it’s under the little “info” button for the Wi-Fi network you’re currently on.
Turn off your phone’s Wi-Fi
We don’t want to confuse the inflight Wi-Fi more than necessary by having two devices with the same MAC appear simultaneously.
On macOS, make sure that any previous configuration for Delta’s inflight Wi-Fi has been deleted.
Force macOS to disassociate from any networks:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z
Set the MAC for your Wi-Fi interface to the MAC that your phone was using2:
sudo ifconfig en0 ether AA:BB:CC:AA:BB:CC
sudo ifconfig en0 lladdr AA:BB:CC:AA:BB:CC
en0 is your laptop’s Wi-Fi interface and
your phone’s Wi-Fi interface’s MAC.
I’m not sure if both of these are required or not, but experimentally using both didn’t hurt things.
Connect to Delta’s inflight Wi-Fi again, and enjoy your internet:
I’m including this one for good measure, since I’m pretty sure it would work and is slightly easier (when you do it right). It has a few constraints:
With this technique, you just change your browser’s user agent to something that Delta’s interstitial recognizes as a mobile phone to get it to show you the T-Mobile option.
For Safari, this can be done by enabling Developer Mode (Settings > Advanced > Show Develop menu in menu bar) and setting the user agent to an iPhone agent:
From there, navigate to Delta’s inflight interstitial
https://wifi.inflightinternet.com) and use the newly visible T-Mobile
option, going through SMS verification as normal.
I’m pretty sure this will work, assuming you have Wi-Fi Calling enabled and have iMessage on your Mac linked to your phone.
Neither of these tricks is new; they’re both very old!
That being said, I was amused (and a little endeared) by the fact that I could use them to get online with inflight Wi-Fi in 2023 — I guess things on the device sniffing/doing-better-than-trusting-MAC front haven’t improved much over the last decade (or, equally likely, Delta and T-Mobile just don’t care about the tiny fraction of users who can figure this out).
On the off chance they do care about this and haven’t intentionally left this gap open for more motivated users, I welcome whatever trick they use to stop my from doing this. It’ll make for an interesting challenge on my next flight.
Seemingly: I’ve been able to use SSH and SMTP(S) on it, so it’s not just HTTP(S). The bandwidth is restricted, obviously. ↩
By default iOS uses private MACs for each Wi-Fi network you join, so I’m not too worried about forgetting to reset this later. It should also not persist between reboots, anyways. ↩