2013-06-14 9 views
17

Zajmuję się tworzeniem strony internetowej w django (na moim komputerze z Windows 7), a teraz muszę przetestować niektóre strony w tabletach. nagle przyszła myśl, że mogę mieć dostęp do mojego hosta lokalnego w Windows z tabletu z Androidem. czy to jest możliwe? Jestem w tym samym połączeniu Wi-Fi na obu urządzeniach w domu.jak uzyskać dostęp do mojego 127.0.0.1: 8000 z tabletu z Androidem

Przeczytałem wiele pytań i odpowiedzi dotyczących tego problemu w stackoverflow i innych miejscach, ale żadne z nich nie dało mi konkretnych rozwiązań.

Posiadam zakładkę samsung 2 10.1 z Androidem 4.0.4.

wdzięczni za każdą pomoc, dzięki

+2

Nie można uzyskać dostępu do 127.0.0.1 z innego pola. Musisz upewnić się, że twoja strona nasłuchuje na twoim adresie sieciowym w twojej sieci LAN, a nie tylko localhost. – Joe

+0

@Joe, więc muszę uruchomić mój localhost z 0000 zamiast 8000? – doniyor

+0

0.0.0.0 (będzie nasłuchiwał na wszystkich interfejsach). Nie ma potrzeby zmiany portu. Ale twój serwer musi to już zrobić dla ciebie. Czy próbowałeś uzyskać dostęp przez ip (i port 8000) interfejsu bezprzewodowego? –

Odpowiedz

10

Możesz dowiedzieć się, jaki jest adres ip komputera za pomocą polecenia ipconfig w wierszu polecenia systemu Windows. Ponieważ wspomniałeś, że są połączone przez WiFi, poszukaj adresu IP karty sieci bezprzewodowej.

Ponieważ tablet znajduje się również w tej samej sieci Wi-Fi, wystarczy, że wpiszesz ten adres w przeglądarce tabletu, z dołączonym do niego: 8000 i powinien on podciągnąć stronę.

+0

dziękuje, ale wciąż ładuje się, ale nic nie pokazuje – doniyor

+1

czy jesteś pewien, że twój serwer działa poprawnie? Jeśli wpiszesz 127.0.0.1:8000 w przeglądarce na komputerze, czy się pojawi? – bojangler

+0

oczywiście działa. – doniyor

1

Jeśli oba są podłączone do tej samej sieci, wszystko co musisz zrobić, to podać adres IP serwera (w sieci) w aplikacji na Androida.

+0

masz na myśli, 127.0.0.1:8000? – doniyor

+0

Nie, nie można uzyskać dostępu do adresu 127.0.0.1 z innego urządzenia. Adres IP urządzenia w sieci. Możesz go uzyskać za pomocą ipconfig lub ifconfig. – smk

+0

to rozwiązanie nie działa, przynajmniej ze mną. Chociaż, jeśli konkretnie wykonam polecenie manage.py runserver : myport działa – titusfx

5

127.0.0.1 jest adresem pętli zwrotnej, co oznacza w przybliżeniu "to urządzenie"; Twój komputer i tablet z Androidem są osobnymi urządzeniami, więc każdy z nich ma swój własny 127.0.0.1. Innymi słowy, jeśli spróbujesz przejść do 127.0.0.1 na karcie Android, spróbujesz połączyć się z serwerem internetowym na urządzeniu z Androidem, co nie jest tym, czego potrzebujesz.

Powinieneś jednak móc łączyć się przez Wi-Fi. W oknie systemu Windows otwórz wiersz polecenia i wykonaj polecenie "ipconfig". Gdzieś w wyjściu powinien być twój adres okna, prawdopodobnie 192.168.1.100 lub coś podobnego. Tablet powinien być w stanie zobaczyć serwer Django pod tym adresem.

1

trzeba znać adres IP urządzenia .. Upewnij się zarówno z maszynami (tabletka) i komputerowych podłączonych do tej samej sieci

192.168.0.22 - mówią Twój adres ekspres

to zrobić:

192.168.0.22:8000 - z tabletem

to jest to !!!

+0

to rozwiązanie nie działa. Przeglądarka zawiesza się.Musisz podać adres IP – titusfx

17

Wydaje się, że jest kilka problemów. Pytanie, które większość odpowiedzi dotyczy to "jak połączyć się z innym serwerem w sieci lokalnej?" (lub warianty). Istnieją dwie odpowiedzi: możesz użyć adresu IP komputera bezpośrednio lub możesz użyć nazwy komputera (może być konieczne dołączenie .local). Na przykład mój komputer to xavier.local.

Drugim problemem jest to, że wydaje się, że jest to zajęcie runserver nie jest dostępny za pośrednictwem innych komputerów w sieci (jest to rzeczywisty pytanie). Powodem jest to, że domyślnie runserver Django przyjmuje tylko żądania od maszyny, która je wywołuje. Oznacza to, że ustawienia domyślne sprawiłyby, że dostęp do serwera byłby możliwy tylko z systemu Windows (i zrobili to celowo ze względów bezpieczeństwa).W celu użycia go do słuchania innych żądań masz dwie opcje:

runserver 192.168.1.101:8000 
# Only handle requests which are made to the IP address 192.168.1.101 

Albo (i to jest łatwiejsze gdy ma do czynienia z więcej niż jednym środowisku):

runserver 0.0.0.0:8000 # handle all requests 

Dlatego, jeśli adres IP jest 192.168.1.101:

runserver # only requests made on the machine will be handled 
runserver 127.0.0.1 # only requests made on the machine will be handled 
runserver 192.168.1.101 # handles all requests (unless IP changes) 
runserver 192.168.1.100 # does not handle any requests (wrong IP) 
runserver 0.0.0.0 # handles all requests (even if the IP changes) 

ja sądzę, że ważne jest, aby pamiętać, że 0.0.0.0 jest realistyczny nie jest to pytanie bezpieczeństwa w przypadku pracy z lokalną maszyną programistyczną. Staje się to poważnym problemem podczas pracy nad dużą aplikacją z maszyną, którą można adresować ze świata zewnętrznego. O ile nie masz przekierowania portu (ja) lub czegoś takiego, nie powinieneś się tym przejmować.

+0

po użyciu 'runserver 0.0.0.0: 8000' Wciąż nie mogę uzyskać dostępu do serwera z telefonu z Androidem. Uzyskanie dostępu do 192.168.1.101:8000 bezpośrednio z maszyny dev (tej, która obsługuje serwer) działa jednak. Jestem na Max OSX El Captain – Anupam

0

Testowane za pomocą łatwego EasyPHP DevServer 14.1. Sztuczka polega na tym, że najpierw musisz dodać lokalny adres IP do serwera Apache, aby go odsłuchać.

Kliknij prawym przyciskiem myszy ikonę na pasku zadań, przejdź do „Konfiguracja” -> „Apache” w „httpd.config”

# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses. 
# 
#Listen 12.34.56.78:80 
Listen 127.0.0.1:80 
Listen 192.168.0.201:80 <<-- ADD THIS LINE 

Następnie przejdź do Panelu sterowania i wyłączyć zaporę systemu Windows lub dodaj swój Smartphone/Tablet IP Adres do wyjątku.

To wszystko. Mam nadzieję, że to pomoże.

Adres IP 192.168.0.201 może być inny niż twój. 192.168.0.X

0

Sam zmagałem się z tym problemem i nie mogłem się zorientować, co to było, ponieważ działało idealnie na moim iPhonie, postanowiłem przyjrzeć się problemowi i znaleźć szybkie rozwiązanie. Moim lokalnym komputerem jest Mac OSX 10.10+, jedną z opcji byłoby uruchomienie serwera Apache, ale to bardzo niefortunne - zmiana DocumentRoot za każdym razem, gdy chcesz szybko sprawdzić coś na swoim urządzeniu z Androidem. Poza tym zmiana DocumentRoot'a jest bolesna w ** na Mac OSX 10.10.

Jeśli chcesz użyć:

python -m SimpleHTTPServer 

na Androida, to zrobić:

sudo python -m SimpleHTTPServer [ANY PORT YOU WANT, BUT NOT 8000] 

Mam nadzieję, że to pomaga.

cheerz kopaln

0

Choć ten wątek był aktywny dość dawno temu. To właśnie dla mnie zadziałało w Windows 10. Umieszczenie go w szczegółach. Może być pomocny dla początkujących, takich jak ja.

  1. Dodaj ALLOWED_HOSTS = ['*'] w Django settings.py plików
  2. prowadzony przez serwer Django z python manage.py 0.0.0.0:YOUR_PORT. Użyłem 9595 jako mojego portu.
  3. Producent zapory, aby umożliwić dostęp na tym porcie:

    • Przejdź do centrali - System>i Bezpieczeństwa ->Windows Defender Firewall

    • Otwarte Advanced Settings , wybierz Reguły przychodzące, a następnie kliknij prawym przyciskiem myszy, a następnie wybierz Nowa reguła

    • Wybierz Port, uderzył obok, wejście do portu użyłeś (w moim przypadku 9595), uderzył obok wybierz umożliwiają połączenia
    • uderzył obok znowu następnie nadać mu nazwę i kliknij następny po raz ostatni.
  4. Teraz znajdź adres IP swojego komputera.

    • Otwarte poleceń Promt jak, administratora i uruchom polecenie ipconfig.
    • Możesz znaleźć więcej niż jeden adres IP. Ponieważ jestem podłączony przez wifi wziąłem ten pod bezprzewodowy LAN adapter WiFi. W moim przypadku było to 192.168.0.100
    • Pamiętaj, że to IP może się zmienić po ponownym połączeniu z siecią. Musisz więc to sprawdzić ponownie.
  5. teraz z innego urządzenia (PC, telefony, tablety itd.) Podłączonego do tej samej sieci, przejdź do ip_address:YOUR_PORT (w moim przypadku 192.168.0.100:9595)

    Mam nadzieję, że będziesz dobrze iść!

Powiązane problemy