2015-01-07 17 views
5

questo questo probabilmente una domanda molto semplice, ma non sono stati in grado di trovare una risposta da nessuna parte. Sugli articoli online a riguardo, non hanno mostrato il processo esatto per condividere una directory usando SimpleHTTerver. Ho eseguito correttamente il comando e il server è in esecuzione, ma posso accedervi solo sulla macchina che l'ha avviato.non possono connettersi al server SimpleHTTPServer python -m

192.168.1.2:8000 

ho provato su una macchina Windows e iPad (anche se questo non fa davvero la differenza) sulla rete locale. Per accedervi, ho usato il mio indirizzo IP locale, che ho trovato eseguendo ifconfig | grep inet, che restituisce (tra le altre partite):

inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255

E dopo aver cercato un po 'in linea, ho trovato: .

C'è funzione che si suppone vi dà un URL pratico per condividere con i tuoi amici, ma ho provato a fare funzionare a livello locale, e tutto quello che ho ottenuto è stato "localhost.localdomain", che restituisce ovviamente 127.0.0.1

Come posso fare questo lavoro?

+0

Hai un IP pubblico? Perché dovresti usarlo invece. –

+0

Hai risolto questo problema? Mi sta facendo impazzire. – oarfish

risposta

5

Quando si avvia SimpleHTTPServer dice che gli indirizzi IP si sta ascoltando:

python -m SimpleHTTPServer 
    Serving HTTP on 0.0.0.0 port 8000 ... 

Indirizzo 0.0.0.0 significa che l'ascolto di tutti gli indirizzi IP disponibili. Quindi in questo caso devi semplicemente raggiungere il server andando a http://192.168.1.two:8000

Se non funziona, è molto probabile che si tratti di un problema di rete. È possibile verificare con il comando telnet (sia Windows che UNIX disponibili): telnet aprirà una connessione TCP/IP su un determinato IP e su una determinata porta.

E.g. su UNIX si può fare:

telnet 192.168.1.2 8000 

Se si ottiene:

telnet 192.162.1.2 8000 
Trying 192.162.1.2... 
telnet: connect to address 192.162.1.2: Connection refused 
telnet: Unable to connect to remote host 

... significa SimpleHTTPServer è in esecuzione.

Se attende da molto tempo significa che il vostro router/firewall blocca la connessione.

Se si riceve una risposta:

telnet localhost 8000 
Trying ::1... 
telnet: connect to address ::1: Connection refused 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 

... browser dovrebbe funzionare così. È possibile uscire da telnet continuando a premere Invio (il SimpleHTTerver chiuderà la connessione).

+0

Se il risultato 'telnet' è il secondo, ma non si può ancora accedere al server da un altro dispositivo, quale sarebbe la diagnosi? Sto cercando di accedere a 'SimpleHTTerver' in esecuzione sul mio MBP sulla porta 8000 da un iPad sulla stessa rete. – oarfish

+0

Se il telnet funziona ma il browser non funziona, significa che la connessione di rete è soddisfacente, ma il browser non funziona correttamente. Di solito questo significa che il browser sta tentando di utilizzare un server proxy (ISP fornito) per la rete locale. Il suggerimento è provare con un browser diverso e controllare le impostazioni del proxy del browser. –