7 ms·
Here is how to get the equivalent data on a Delta flight. $ curl https://wifi.delta.com/api/flight-data | jq % Total % Received % Xferd Average S
by hackmiester 3y ago
Here is how to get the equivalent data on a Delta flight.
$ curl https://wifi.delta.com/api/flight-data | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 448 100 448 0 0 5600 0 --:--:-- --:--:-- --:--:-- 5743
{
"timestamp": "2023-07-11T14:54:41Z",
"eta": "17:48",
"flightDuration": 278,
"flightNumber": "DAL786",
"latitude": 39.723472595214844,
"longitude": -97.1514205932617,
"noseId": "3879",
"paState": false,
"vehicleId": "N879DN",
"destination": "KPDX",
"origin": "KATL",
"flightId": "N879DN_SF_20230711121358",
"airspeed": null,
"airTemperature": 24,
"altitude": 33922,
"distanceToGo": 179,
"doorState": "Closed",
"groundspeed": 442,
"heading": -73,
"timeToGo": 174,
"wheelWeightState": "Off"
}
And a fun snippet for you.
$ curl -s https://wifi.delta.com/api/flight-data | jq -r '"https://maps.google.com/?q=", .latitude, ",", .longitude' | tr -d '\n'; echo
https://maps.google.com/?q=40.5615234375,-101.2824478149414
- c7DJTLrn 3y agoIt would be nice if you could send a POST request to open the door if you want some fresh air.
- pwillia7 3y agoDELTE
- hackmiester 3y agoI tried to change the flight level by PATCHing altitude, but it seemed to require authentication. Oh well.
- CamperBob2 3y agoThis sounds like a good way to meet some upset people with expensive sunglasses shortly after you land.
- jmharvey 3y agoIt's not like that at all. The sunglasses aren't that expensive.
- hackernewds 3y agoafter you land also open to interpretation
- deleted 3y ago[deleted]
- ComputerGuru 3y agoMaybe you can take risks like that, but I certainly can’t. I don’t think anyone with my name or skin color would be given the benefit of the doubt for even a moment.
- thomashop 3y agoYour comment made my day. Eye opening
- foxhill 3y agolet me guess, you experience “random selection” events more than the expected amount? apologies for joking. it must suck.
- ComputerGuru 3y agoOh yes. Reminds me of the XKCD rand() comic!
- hk1337 3y agoSomeone will probably figure out how to send a request to disable auto-pilot or turn off the fasten seat belt sign.
- naikrovek 3y agothe airline industry is nowhere nearly as stupid as the software industry with things like this. the communication between plane and wifi/entertainment system, if there is any, is almost certainly one-way. likely, the wifi system providing this info is receiving data from the flight systems and repeating it or transforming it a bit and providing that. it would not surprise me at all if the flight attendants have to program everything about the flight into the system prior to departure each flight, and there is no communication from the aircraft at all.
- jpalomaki 3y ago"The computer network in the Dreamliner's passenger compartment, designed to give passengers in-flight internet access, is connected to the plane's control, navigation and communication systems, an FAA report reveals." [1] (I guess there's some kind of firewall, but we know that those are not always perfect) [1] https://www.wired.com/2008/01/dreamliner-security/ https://www.wired.com/2008/01/dreamliner-security/
- AdamN 3y agoNot a problem as long as you reboot your Dreamliner every once in a while: https://www.theregister.com/2020/04/02/boeing_787_power_cycle_51_days_stale_data/ https://www.theregister.com/2020/04/02/boeing_787_power_cycl...
- eep_social 3y agoIIRC the in-flight infotainment systems are entirely separate from the avionics control systems at the data layer. I recall being told that in some cases even the flight status is actually pulled from a 3p api service rather than hooked into the onboard avionics. There could be some fuckery via shared power or other non-data systems but that’s probably beyond someone sitting in a seat with standard laptop hardware.
- fnord77 3y agoPlease stand by, a DHS agent will be with you shortly
- queuebert 3y agoYou probably can. I suspect airliner software is appallingly insecure.
- epse 3y agoRelies very strongly on simple airgapping. Can't do anything to it if there's no wires in the direction you want. Can't remotely hack if there's nothing antenna connected that can talk to flight control. It has the luxury of not needing to do the "limited RCE" that is a modern web request
- inopinatus 3y agoIn the article above, in-flight wifi has an API reporting position, altitude, and velocity. That is a feed from avionics, which renders the claim of airgapped systems essentially null.
- nucleardog 3y agoThey could, for the sake of a ridiculous but clear example, have a display hooked up to the avionics and a camera hooked up to a separate computer which reads the values. There are various ways of connecting systems while physically guaranteeing one way data flow—a fiber optic link with the transmitter removed from one end and the receiver removed from the other is basically a less silly “camera pointed at a display” and used in the real world. You could argue the exact semantics of “air gapped”, but for the discussion here that’s accomplishing the same thing. The fact that the passenger network has some visibility into the avionics network is not, in and of itself, any indication of an issue.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- upwardbound 3y ago
- remram 3y agoYou can use jq's string interpolation feature to simplify this: $ curl -s https://wifi.delta.com/api/flight-data | jq -r '"https://maps.google.com/?q=\(.latitude),\(.longitude)"'
- hackmiester 3y agoThanks! I was trying to figure this out but I didn't have great Internet access (for some reason...) so I just hacked it instead.
- shortrounddev2 3y agoIn powershell Invoke-WebRequest https://wifi.delta.com/api/flight-data | ConvertFrom-Json | %{ "https://maps.google.com/?q=$($_.latitude),$($_.longitude)"
- eddieroger 3y agoInteresting how they chose to make more general `vehicleId` instead of `planeId` or `tailNumber` or something. I wonder if Delta's fleet includes other things that have matching APIs to this one. I also wonder how much of their internal system structure one could learn from the `flightId` if they knew about other systems. It doesn't look like much beyond a composite key of otherwise knowable data, but still interesting.
- stbenjam 3y agoI doubt Delta made this. It’s an official the shelf product that can do ships, trains, planes, etc.
- eddieroger 3y agoValid point. It makes a lot of sense in that light instead.
- mulmen 3y agoBut they also have airplane/flight specific identifiers like “flightNumber”, “flightId”, “noseId(?)” and “airSpeed”. Maybe vehicleId is part of a base class or primary key somewhere and that abstraction is leaking.
- hackmiester 3y agoHey, a train has airspeed. :)
- mulmen 3y agoHeh, true. I deliberately left out altitude because this is HN but you caught me anyway. Presumably a train's groundSpeed and airSpeed are the same. If they diverge you have bigger problems than a JSON schema. Is there a variant of this for ships? surfaceSpeed vs seaFloorSpeed?
- 3y ago
- deleted 3y ago[deleted]
- bunabhucan 3y ago> "airspeed": null [nervously looks out window]
- MBCook 3y agoThat’s just a sampling error. -NaN is when you get scared.
- CommieBobDole 3y agoAs always, there's a relevant XKCD: https://xkcd.com/2170/ https://xkcd.com/2170/
- denvaar 3y agoWhat makes it so that you can only resolve the host wifi.delta.com during a flight?
- gsk22 3y agoI assume the DNS server on the in-flight router is programmed to resolve that hostname to some local device. Similar to how I can log into my ASUS router from my home wifi by visiting asusrouter.com.
- PNWChris 3y agoI have nothing insightful to add, I just want to say thanks for posting this! I’m on a flight right now and just went to this URL. Sure enough, it works! I know this information is available via the wifi portal’s UI, but a JSON blob just hits different. ``` {"timestamp":"2023-09-28T21:57:39Z","eta":"23:45","flightDuration":164,"flightNumber":"DAL992","latitude":47.4557876586914,"longitude":-111.73490905761719,"noseId":"3883","paState":false,"vehicleId":"N883DN","destination":"KMSP","origin":"KSEA","flightId":"N883DN_SF_20230928195737","airspeed":null,"airTemperature":null,"altitude":35273,"distanceToGo":13,"doorState":"Closed","groundspeed":499,"heading":95,"timeToGo":107,"wheelWeightState":"Off"} ``` Apologies for the JSON formatting, I’m on mobile.
- skykooler 3y agoIt'd be interested to make a little HTML page that can query the api for each airline that exposes something like this and give you an in-flight display on your laptop.