TramBus
- MilosnikKomunikacji
- Posty: 1246
- Rejestracja: 01 wrz 2015, 20:26
- Lokalizacja: Bródno-Podgrodzie
- Kontakt:
Bo to nie jest aplikacja ZTMu, tylko MZA...Nordyk110 pisze: Arriwa nieobecna
Naprawdę? Może warto najpierw to sprawdzić?MilosnikKomunikacji pisze:Bo to nie jest aplikacja ZTMu, tylko MZA...
Owszem, powinna. Ale ZTM swój system nadzoru ruchu dopiero tworzy. I czy będzie chciał posiadane dane upowszechnić publicznie to się okaże. Obawiam się, że dla świętego spokoju swojej aplikacji nie stworzą. Po co pretensje, że coś działa nie tak, że autobusu nie było choć w aplikacji był, a tramwaj przyjechał choć w aplikacji go nie było....Wiliam pisze:A powinna być ZTMu. No i ZTM też ją reklamował.
Jakieś dwa (albo i 3) lata temu ZTM deklarował udostępnienie położenia pojazdów i cisza.
TW udostępniło położenia pojazdów w ramach programu otwartych danych. Potem obcięto numery taborowe, zaś sama lokalizacja jest podawana z opóźnieniem i to nie wszystkich pojazdów.
Genesis mobo dogadał się z TW i MZA i w swojej aplikacji mają dane w czasie rzeczywistym.
Ale to wszystko za mało na planowanie podróży wg rzeczywistego położenia pojazdów. Taki stan rzeczy na dzień dzisiejszy.
TW udostępniło położenia pojazdów w ramach programu otwartych danych. Potem obcięto numery taborowe, zaś sama lokalizacja jest podawana z opóźnieniem i to nie wszystkich pojazdów.
Genesis mobo dogadał się z TW i MZA i w swojej aplikacji mają dane w czasie rzeczywistym.
Ale to wszystko za mało na planowanie podróży wg rzeczywistego położenia pojazdów. Taki stan rzeczy na dzień dzisiejszy.
Zdradzisz, jak uzyskać tę informację:)?aaa pisze:Podejrzałem metodą odwróconej inżynierii API tej aplikacji i przesyłany jest numer boczny pojazdu bez numeru brygady.
Po co spieszyć, przecież do końca życia mamy na to czas.
Pozwolę sobie napisać
Do tego sposobu potrzebujemy telefon z Androidem (ja korzystam z wersji 6.0.1). Do podglądania danych potrzebna jest aplikacja "Packet Capture".
Podejrzenie danych jest bardzo proste:
Otwieramy aplikację Packet Capture (do jej działania potrzebne jest zainstalowanie certyfikatów bezpieczeństwa, więc jeśli dostaniemy komunikat o potrzebie instalacji, to akceptujemy).
Klikamy przycisk zielonej strzałki na górnym pasku aplikacji. Wychodzimy do ekranu głównego androida, zostawiając aplikację otwartą w tle. Na belce systemowej obok ikonek WiFi, sieci itp. powinien pokazać się znak klucza.
Otwieramy aplikację TramBus. Wybieramy interesujący nas przystanek, wchodzimy w niego i kiedy mamy pokazane odjazdy live, możemy przejść do aplikacji Packet Capture.
W aplikacji klikamy czerwony kwadrat i mamy przed sobą dane, które zebrała aplikacja w czasie jej działania. Zostały one zebrane w "katalogu", który tworzy się za każdym razem, gdy włączymy przechwytywanie danych. Wchodzimy w katalog.
Mamy przed sobą każde zapytanie wykonane przez aplikacje zainstalowane w telefonie. Wyszukujemy naszą aplikację TramBus i wchodzimy w każde zapytanie szukając u samej góry zapytania na niebieskim tle ciągu:
Gdzie zamiast gwiazdek mamy numer przystanku w aplikacji (nie rzeczywisty). Jeśli nie znaleźliśmy to szukamy w innych zapytaniach z aplikacji. Jeśli znaleźliśmy to poniżej powinny nam się pokazać odjazdy autobusów z danego przystanku około godziny do tyłu i dwóch godzin do przodu. Dane są przesyłane w formacie JSON, więc ludzkim okiem ciężko się to czyta, ale przy wprawie można szybko sobie znaleźć interesujące informacje.
Numer przystanku w aplikacji, np. 490 - Obrońców Tobruku 03 w kier. Kochanowskiego, potrzebny do sposobu nr 2.
Numer linii i kierunek
Godzina odjazdu
Minuty do odjazdu (lub po odjeździe)
Numer pojazdu
Pozycja GPS pojazdu
Jeśli chcemy nie bawić się w każdorazowe sprawdzanie danych w Packet Capture, to jest inny, prostszy sposób, poprzez przeglądarkę internetową. W tym celu należy posiadać numer przystanku w aplikacji (nie jest to numer rzeczywisty, jaki można znaleźć na rozkładzie jazdy, czy na stronie ZTM!). Należy wejść pod adres:
http://api2.livebus.pl:62000/c/departures/4/490 Obrońców Tobruku 03 (103,122,180,197,397)
http://api2.livebus.pl:62000/c/departures/4/6259 Pl. Niemena 02 (103,180,221)
http://api2.livebus.pl:62000/c/departures/4/178 Chomiczówka 01 (114,121,409)
http://api2.livebus.pl:62000/c/departures/4/5482 Monte Cassino 02 (109,154,171,184,190,197)
Dane podawane na stronie są identyczne z danymi z Packet Capture, ale aby poznać numer przystanku trzeba użyć do tego aplikacji. Jeśli ktoś by chciał, to może zrobić rozpiskę z przystankami, albo zrobić stronę z odjazdami na żywo z numerami pojazdów Dużą wadą tych sposobów jest brak numerów brygad, ale niestety nie znajdziemy tutaj tych danych
Do tego sposobu potrzebujemy telefon z Androidem (ja korzystam z wersji 6.0.1). Do podglądania danych potrzebna jest aplikacja "Packet Capture".
Podejrzenie danych jest bardzo proste:
Otwieramy aplikację Packet Capture (do jej działania potrzebne jest zainstalowanie certyfikatów bezpieczeństwa, więc jeśli dostaniemy komunikat o potrzebie instalacji, to akceptujemy).
Klikamy przycisk zielonej strzałki na górnym pasku aplikacji. Wychodzimy do ekranu głównego androida, zostawiając aplikację otwartą w tle. Na belce systemowej obok ikonek WiFi, sieci itp. powinien pokazać się znak klucza.
Otwieramy aplikację TramBus. Wybieramy interesujący nas przystanek, wchodzimy w niego i kiedy mamy pokazane odjazdy live, możemy przejść do aplikacji Packet Capture.
W aplikacji klikamy czerwony kwadrat i mamy przed sobą dane, które zebrała aplikacja w czasie jej działania. Zostały one zebrane w "katalogu", który tworzy się za każdym razem, gdy włączymy przechwytywanie danych. Wchodzimy w katalog.
Mamy przed sobą każde zapytanie wykonane przez aplikacje zainstalowane w telefonie. Wyszukujemy naszą aplikację TramBus i wchodzimy w każde zapytanie szukając u samej góry zapytania na niebieskim tle ciągu:
GET /c/departures/4/*****
Gdzie zamiast gwiazdek mamy numer przystanku w aplikacji (nie rzeczywisty). Jeśli nie znaleźliśmy to szukamy w innych zapytaniach z aplikacji. Jeśli znaleźliśmy to poniżej powinny nam się pokazać odjazdy autobusów z danego przystanku około godziny do tyłu i dwóch godzin do przodu. Dane są przesyłane w formacie JSON, więc ludzkim okiem ciężko się to czyta, ale przy wprawie można szybko sobie znaleźć interesujące informacje.
legenda:{"stop":490,"line_name":null,"time":null,"departures":[{"trip":10649894,"trip_element":22,"line":"397","direction":"Metro Stare Bielany","leave_time":1481089740,"plan_time":"06:49","minutes":-57,"status":1,"vehicle_status":1,"vehicle_info":{"name":"1814","poj_id":649,"lon":20.9416571,"lat":52.246753},"is_real":true,"leaveTimeMode":3,"stop_type":1,"contractor":1}
,{"trip":10657068,"trip_element":38,"line":"103","direction":"Metro Młociny","leave_time":1481090100,"plan_time":"06:55","minutes":-51,"status":1,"vehicle_status":0,"vehicle_info":{"name":na tej brygadzie (linii) jest ajent i nie ma danych rzeczywistych:"","poj_id":0,"lon":0.0,"lat":0.0},"is_real":false,"leaveTimeMode":0,"stop_type":1,"contractor":0}
Numer przystanku w aplikacji, np. 490 - Obrońców Tobruku 03 w kier. Kochanowskiego, potrzebny do sposobu nr 2.
Numer linii i kierunek
Godzina odjazdu
Minuty do odjazdu (lub po odjeździe)
Numer pojazdu
Pozycja GPS pojazdu
Jeśli chcemy nie bawić się w każdorazowe sprawdzanie danych w Packet Capture, to jest inny, prostszy sposób, poprzez przeglądarkę internetową. W tym celu należy posiadać numer przystanku w aplikacji (nie jest to numer rzeczywisty, jaki można znaleźć na rozkładzie jazdy, czy na stronie ZTM!). Należy wejść pod adres:
Gdzie w miejsce gwiazdek wpisujemy numer przystanku z TramBusa, np.
http://api2.livebus.pl:62000/c/departures/4/490 Obrońców Tobruku 03 (103,122,180,197,397)
http://api2.livebus.pl:62000/c/departures/4/6259 Pl. Niemena 02 (103,180,221)
http://api2.livebus.pl:62000/c/departures/4/178 Chomiczówka 01 (114,121,409)
http://api2.livebus.pl:62000/c/departures/4/5482 Monte Cassino 02 (109,154,171,184,190,197)
Dane podawane na stronie są identyczne z danymi z Packet Capture, ale aby poznać numer przystanku trzeba użyć do tego aplikacji. Jeśli ktoś by chciał, to może zrobić rozpiskę z przystankami, albo zrobić stronę z odjazdami na żywo z numerami pojazdów Dużą wadą tych sposobów jest brak numerów brygad, ale niestety nie znajdziemy tutaj tych danych
Zaktualizowałem post, jeśli macie jakieś uwagi, to proszę o zgłaszanie
Pomysł z mapką jest najciekawszy
A dodanie kierunku jazdy na podstawie nr tab. to szczyt marzeń
I nawet można stworzyć rozkład brygad (bez przypisania do konkretnego nr) jeśli dorobi się skrypt zapisujący odjazdy w ciągu dnia.
A dodanie kierunku jazdy na podstawie nr tab. to szczyt marzeń
I nawet można stworzyć rozkład brygad (bez przypisania do konkretnego nr) jeśli dorobi się skrypt zapisujący odjazdy w ciągu dnia.
- Thompson04
- Posty: 202
- Rejestracja: 27 maja 2009, 19:36
- Lokalizacja: Bemowo Jelonki
Czyli w takim razie można równie dobrze sobie zainstalować emulator BlueStack na komputerze, uruchomić tytułową aplikację, uruchomić cokolwiek do przechwytywania ruchu HTTP (np. Fiddler Web Debugger) i w ten sposób znając adres serwera API z ścieżkami do tego metod można wysyłać własne żądania tworząc nawet własną aplikację na telefony czy komputer. Ciekawe czy autorzy tej aplikacji są tego świadomi
@SU89, a sprawdzałeś czy nie przechwyciłeś też żądania dla listy nazw przystanków? Może nie są zaszyte na stałe w aplikacji tylko są pobierane jako "słownik" też przez API (bo te dane się zmieniają dosyć często chyba).
BTW. To co opisał SU89 to jak dla mnie nie jest inżyniera odwrotna jeśli @aaa pisał o tej samej metodzie na uzyskanie numeru pojazdu.
@SU89, a sprawdzałeś czy nie przechwyciłeś też żądania dla listy nazw przystanków? Może nie są zaszyte na stałe w aplikacji tylko są pobierane jako "słownik" też przez API (bo te dane się zmieniają dosyć często chyba).
BTW. To co opisał SU89 to jak dla mnie nie jest inżyniera odwrotna jeśli @aaa pisał o tej samej metodzie na uzyskanie numeru pojazdu.
Dane są pobierane na początku działania aplikacji, zapewne też z jakiegoś api - też to można pewnie podejrzeć. Szkoda, że nazwy przystanków nie są zgodne z ZTMowymi - ale spodziewam się, że na początku działania aplikacji przychodzi paczka wszystkiego, łącznie z pozycjami gps przystanków.
I dla mnie też to nie jest reserved engineering tylko raczej packet sniffing - może zrobią jakież zabezpieczenia, ale też i po co.
I dla mnie też to nie jest reserved engineering tylko raczej packet sniffing - może zrobią jakież zabezpieczenia, ale też i po co.
ŁK