A magyar kormánygépek repülési adatai publikusak. Az ADS-B transponder, amit minden kereskedelmi forgalomban lévő gép köteles folyamatosan sugározni, bárhol a világon fogható egy ~30 eurós antennával. Az ADS-B Exchange egy önkéntes-alapú oldal, ahol ezek a jelzések globálisan aggregálódnak. A 604-es, 605-ös, 607-es lajstromjelű Dassault Falconok pályája ugyanúgy ott van, mint az amszterdami KLM 1257-é.
Ami viszont nem létezett: egy magyar-specifikus aggregátor. Olyan, ami kizárólag a kormánygépeket és a velük kapcsolatban lévő, Magyarország szempontjából érdekes gépeket (NER-közeli magángépek, oligarcha-járatok) mutatja. Ezt csináltam meg egy hétvége alatt.
Mi a lista amit figyelünk?
Húsz ICAO hex-kód, kb. három kategóriában:
- Kormánygépek — a 604-611-es lajstromjelű Dassault Falconok
(
477ff4-től477f86-ig). Ezek a HDF / honvédség állami járataihoz tartoznak. - Mészáros/Szíjj-kör — magángépek, amiket nyilvános források
alapján az oligarcha-kör üzemeltet (
440241,4401d7,440392,470b84,440d18). - NER-közeli és egyéb — szintén nyilvános forrásból azonosított gépek, amelyek ismert döntéshozók vagy hozzájuk kapcsolódó cégek nevéhez köthetőek.
A lista közhírrel szerezhető. Nem titkosszolgálati munka, nem magánnyomozás — nyilvános lajstromadatbázis + ADS-B publikus jelek.
Az architektúra szinte egyszerű
Nincs backend-framework, nincs SaaS, nincs cloud. Csak három fájl egy PHP-s szerveren:
-
adsbx_cron.php— percenként lefut crontab-ból. Végigmegy a 20 ICAO kódon, mindegyikhez letölti az ADS-B Exchange publikus trace-JSON-ját, kiemeli a legutolsó pozíciót (lat, lon, magasság, sebesség, irány, on-ground flag), és beszúr egy rekordot az SQLite-ba. -
adsbx_history.php— egy JSON API, amit a frontend hív. Visszaad historikus pozíciókat és eseményeket egy adott gépre vagy mindenre, időszakra szűrve. -
govplane_tracker.html— egyetlen statikus HTML Leaflet térképpel, sidebar listával, élő telemetria panellel, idővonallal. A history API-t hívja, és rendereli a track-okat a térképen.
Az SQLite a PHP-ba épített SQLite3 osztályon keresztül kezelhető, semmi
komolyabb ORM. Két tábla: positions (minden percenkénti pozíció-snapshot)
és events (fel- és leszállások). Egy indexelt séma, semmi bonyolult.
Fel- vagy leszállás detekció
Az ADS-B pozíciós mezőjében van egy on_ground bit: a gép maga mondja,
hogy a földön van-e vagy levegőben. A cron minden új pozíciónál megnézi, mi volt az
előző logolt állapot. Ha ez átcsapott:
was_on_ground=1→on_ground=0= felszálláswas_on_ground=0→on_ground=1= leszállás
Beszúrunk egy eseményt az events táblába a pontos időponttal és
koordinátákkal. Egyszerű, de megbízható. A cron log standard output-ja
(/var/log/govplane.log-ra van átirányítva) aktív időben tartalmaz
időbélyeges eseménysorokat:
2026-03-20 14:07:23 EVENT: 604 (477ff4) takeoff at 47.43918,19.26145
Adatvédelmi gondolatok — ami nem lopás
Ez egy olyan projekt, amiről érdemes beszélni. Három kérdés érdekel:
Egy kormánygép közpénzből üzemel. Mozgása közérdekű információ — mikor hol van a kormány flottája. Ellenben egy magángép a tulajdonosának magánügye — még ha NER-közeli oligarcháé is. A kérdés: hol a határ?
Jogi szempontból Magyarországon nincs külön jogszabály, ami tiltaná az ADS-B aggregálását (az adatokat a gép maga sugározza szabadon). Etikai szempontból viszont a közérdek felülírja a magánügyet, amikor politikai döntéshozók vagy köztisztviselők mozgásáról van szó.
A személyes szabályom: csak olyan gépet trackelek, amelynek köztisztviselői vagy közpénz-kezelői használata publikusan dokumentált. Nem Dobd-rá egy ismeretlen magángépet, mert ez nem oknyomozás. És nem publikálok pontos úticélt real-time — csak „felszállt Budapestről", „leszállt Münchenben", mert az adatok egyórás fagyással érkeznek a public API-ról.
A frontend amire büszke vagyok
Egyetlen HTML-ben van, 40 KB, semmilyen keretrendszer. Mégis csinál pár trükkös dolgot:
- Élő térkép — Leaflet, OpenStreetMap tile-okkal. A legutolsó pozíciókat ikonokkal mutatja (repülő-ikon az aktuális iránnyal elforgatva), a track-ot polyline-nal rajzolja ki.
- Sidebar gép-lista — mindegyikre egy kártya. Online/offline állapot, légi/földi jelölés, utolsó aktivitás ideje. Kattintásra beugrik a térkép a gép utolsó pozíciójára.
- Telemetria panel — amikor egy gépet kiválasztasz: lajstromjel, típus, callsign, magasság, sebesség, irány. Telexszerűen frissül.
- Chart.js magasság-grafikon — az elmúlt N óra magasság-profilja. Szép látni, ahogy egy felszállási ív megjelenik.
- Események feed — időbélyeges takeoff/landing sor. „2026-03-20 08:47 — 604 felszállt Budapestről."
Ami a tanulság
Egy jó scraper nem rocket science. Az ADS-B Exchange public URL-jei
mindenki számára elérhetőek. A trükk benne az volt, hogy a curl-es Referer
header beállítását megtaláltam — anélkül 403-at adnak. Ha van.
Az SQLite néha elég. 17 000 sor + index + query-k csoportonként — ez egy modern SSD-n mikroszekundumok. Nem kell PostgreSQL, nem kell cloud, nem kell index-karbantartás. Amíg nem lesz milliós sor, addig semmit nem kell skálázni.
A publikus adat közérdek. Nem azért építettem ezt, hogy valakit bajba kevertem — azért, mert a közpénzből üzemelt gépek mozgása legitim közéleti információ. Ez a demokratikus közlés része: ki hol van, mikor, és ezt bárki meg tudja nézni.
Ha érdekel
A tracker élőben fut itt: govplane_tracker.html. Kattints rá, és ha van éppen fel- vagy leszálló gép, élőben látod. Az eseményeket percenként frissíti.
A nyilvánosság nem akkor kezdődik, amikor a politikus bemutatkozik — hanem amikor te is látod azt, amit ő rég lát.