DangBean Opublikowano 13 Maja 2014 Udostępnij Opublikowano 13 Maja 2014 w 39dll była funkcja tcpip(), którą można było pobrać IP komputera, na którym działa gra. W GMS czegoś takiego nie widzę. Zna ktoś jakiś trick? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
baca Opublikowano 13 Maja 2014 Udostępnij Opublikowano 13 Maja 2014 Jedyne co przychodzi mi do głowy to php <?php echo $_SERVER['REMOTE_ADDR']; ?> I jedynie odczytać ze strony Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 14 Maja 2014 Udostępnij Opublikowano 14 Maja 2014 GM:S nie posiada funkcjonalnosci pobrania IP kompa/urzadzenia, jednak dobrze pamietalem motyw z broadcastem UDP na androidzie i zrobilem analogicznie przyklad, ktory wykorzystuje takowy trick :) https://dl.dropboxusercontent.com/u/9759049/CheckLocalIP.gmz jesli zas chcesz uzyskac IP globalne, zastosuj podpowiedz od bacy. dodam, ze polaczenie uzyskania IP lokalnego i globalnego pomoze w zrobieniu "UDP hole punching" w GM:S, czym sie moze sprobuje za jakis czas zajac ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 14 Maja 2014 Autor Udostępnij Opublikowano 14 Maja 2014 GM:S nie posiada funkcjonalnosci pobrania IP kompa/urzadzenia, jednak dobrze pamietalem motyw z broadcastem UDP na androidzie i zrobilem analogicznie przyklad, ktory wykorzystuje takowy trick :) Fajny pomysł. Na pierwszy rzut oka powinien działać. Odpaliłem - nie zadziałało. OK - sprawdziłem porciki - zajęty. Zmieniłem port i zadziałało :rolleyes: , ale szczena mi opadła bo mój globalny IP to 83.23...., lokalny IP to 10.34...., a GMS pokazało ni z gruszki ni z pietruszki 169.254.188.19 :blink: . Poszukałem w kompie i okazało się, że jest to IP dla VirtualBoxa, który nawet nie był uruchomiony podczas testu! Ciekawe jak GMS to wygmerał? Z UDP hole punching może nie pójść tak łatwo :( . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 14 Maja 2014 Udostępnij Opublikowano 14 Maja 2014 generalnie dzieki trickowi z broadcastem powinienes dostac tyle odpowiedzi z IP ile tych IP posiada Twoja maszyna, jednak w tym przykladzie jak zdobedzie pierwszy to dalej nie powinien kolejnych nadpisac. pogmeram z tym jeszcze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 15 Maja 2014 Autor Udostępnij Opublikowano 15 Maja 2014 generalnie dzieki trickowi z broadcastem powinienes dostac tyle odpowiedzi z IP ile tych IP posiada Twoja maszyna, jednak w tym przykladzie jak zdobedzie pierwszy to dalej nie powinien kolejnych nadpisac. pogmeram z tym jeszcze. Niestety broadcast robi tylko na jednej masce. Zmieniłem w następujący sposób: w create event: GML _ip = ds_list_create(); w networking event: GML ds_list_add(_ip, ds_map_find_value( async_load, "ip" )); //_ready = true; //event_user( 0 );</span></span> dodałem draw event: GML var i, ile_ip; ile_ip = ds_list_size(_ip); for(i=0; i<ile_ip; i++){ draw_text(16, i*16, ds_list_find_value(_ip, i)); } User event - już niepotrzebny. Niestety jest tylko jeden wynik - IP VirtualBoxa. Obu moich kart sieciowych - nie widzi :( . Trochę to dziwne bo jak puszczę ipconfig /all to mi pokazuje, że w chwili obecnej tylko karta wifi jest aktywna - tej karty lokalne IP powinien pokazywać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 15 Maja 2014 Udostępnij Opublikowano 15 Maja 2014 w takim razie zostaje wysylanie rzadan recznie na znane adresy broadcastowe. glupi GM narzuca limit do wylacznie jednej maski D: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DangBean Opublikowano 16 Maja 2014 Autor Udostępnij Opublikowano 16 Maja 2014 Myślałem, że znajdziesz błąd w mojej przeróbce i wszystko będzie pięknie... Niestety to nie tylko problem z odnajdywaniem własnego IP. Jeśli którys z graczy ma zainstalowany VirtualBox to UDP broadcast w ogóle nie będzie mu działał - wszystko pójdzie w powietrze. Zostaje TCP. A teraz ciekawostka: wywaliłem (tymczasowo) driverka od VirtualBoxa i zapuściłem Twój (zmodyfikowany) programik. I tu zdziwionko: pokazał, że mam dwie karty sieciowe - obie z identycznym adresem, co nie jest prawdą, bo ich IP różnią sie ostatnią cyfrą. Nie mniej bez VirtualBoxa gra, która piszę może mi zadziała. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Maja 2014 Udostępnij Opublikowano 17 Maja 2014 broadcast zapuszcza na kazde IP, wiec to kazde IP powinno odpowiedziec za siebie, nie za jakies inne - w ogole GMowy broadcast dziala jakos inaczej niz powinno, albo cos z Twoja siecia jest nie tak. nawet na smartfonie mi to natywnie dzialalo jak czeba D: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 17 Maja 2014 Udostępnij Opublikowano 17 Maja 2014 Ale jeśli GM złapie jakąś wirtualną kartę i przez jej interfejs będzie chciał broadcastować to trafi na np. Hamachi albo VirtualBox'owy adapter. Tak twierdzi DangBean. (tylko jego słowa przypominam) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Maja 2014 Udostępnij Opublikowano 17 Maja 2014 ja bym zrobil mimo wszystko tak, ze kazde IP lokalne, jakie otrzymam, probuje na osobnych watkach puscic UDP hole punching i w ten sposob dobrac sie do IP, ktore z sukcesem polaczy sie z serwerem globalnym. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się