Use o módulo Python para executar um servidor HTTP básico e usar um navegador da Web no celular para acessar o PC localhost via tethering de USB.
Visão geral da configuração e uso
Um celular está conectado ao PC localhost através de um cabo USB.
- Configuração no celular (o tethering de USB é ativado )
- Configuração no PC localhost (consulte Parte A. )
- Acesso pelo celular (veja Parte B. )
Quando o usuário terminar o acesso, vá para o PC localhost e pressione Ctrl + C para parar o servidor HTTP que está sendo executado no terminal. Ou simplesmente fechar o terminal pode terminar o processo também.
Parte A. Configuração no PC localhost
Certifique-se de que o Python esteja instalado no PC localhost (execute python --version
em um terminal para verificar a versão, o que afetará a etapa 3).
-
Abra um terminal
-
Primeiro, verifique o endereço IP do PC localhost usando o comando
ip
ouifconfig
(o que estiver funcionando). A seguinte saída de exemplo mostra192.168.XX.YYY
é o endereço IP que foi atribuído a um PC localhost via tethering USB.$ ip addr show usb0 3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff inet 192.168.XX.YYY/** brd 192.168.XX.ZZZ scope global usb0 valid_lft forever preferred_lft forever inet6 ****::****:****:****:****/** scope link valid_lft forever preferred_lft forever $ ifconfig usb0 usb0 Link encap:Ethernet HWaddr **:**:**:**:**:** inet addr:192.168.XX.YYY Bcast:192.168.XX.ZZZ Mask:255.255.255.0 inet6 addr: ****::****:****:****:****/** Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ...
-
Em seguida, inicie um servidor HTTP usando o módulo Python com qualquer número de porta disponível, ou seja, 31415 (fácil lembrar como 'pi'). O exemplo a seguir mostra
http.server
module é usado para o Python 3, caso contrário useSimpleHTTPServer
module para Python 2.$ python -m http.server <port_number> Serving HTTP on 0.0.0.0 port ***** ...
Além disso, se o PC do host local tiver ativado o firewall, adicione uma nova regra para permitir a conexão de entrada do número da porta e do endereço IP (isso seria outro conjunto de perguntas e respostas). Senão desabilitar temporariamente o firewall só funcionaria por simplicidade em troca de baixa segurança.
Parte B. Acesso do celular
Certifique-se de que o tethering USB permaneça ativado; Nenhuma configuração adicional.
-
Abra um navegador da web
-
Vá para
http://192.168.XX.YYY:<port_number>
em que192.168.XX.YYY
é o endereço IP usado pelo PC localhost e<port_number>
é qualquer número de porta disponível no PC localhost. -
O navegador da Web mostrará Lista de diretórios do diretório de trabalho atual, que por padrão é o diretório principal do usuário atual.
O usuário agora pode acessar quaisquer arquivos e diretórios no diretório de trabalho atual para fins de navegação e download.
Limitação e compatibilidade
Um servidor HTTP permitirá acesso somente leitura, o que é bom o suficiente para navegação e download. O usuário não poderá modificar os arquivos no PC localhost. Se o usuário precisar de acesso de leitura e gravação, use outro método (talvez usando SFTP ou SSH, que eu não conheço).
O método do servidor HTTP funcionará enquanto o tethering USB estiver ativado (o endereço IP é conhecido), independentemente de o Modo avião ou Dados do celular estarem ligados ou desligados. Trabalho provável para telefones celulares com qualquer versão do Android (não é certo para outros sistemas operacionais móveis).
Testado usando Python 2.7 e Python 3.4, com o UFW ativado e desativado no Xubuntu 14.04 e o tethering USB ativado no Android 7.1.1.
Referências
-
SimpleHTTPServer - Manipulador de solicitação HTTP simples da documentação do Python 2.
-
link da documentação do Python 3
-
Como você decide qual porta usar? no Stack Overflow discutiu qual porta usar.
-
Como verificar a porta aberta / fechada no meu computador? no Ask O Ubuntu mencionou comandos para verificar a abertura ou porta fechada no computador.
Postagens relacionadas na rede do SE
-
Como faço para compartilhar uma pasta com outra máquina Linux na mesma rede doméstica? no Ask Ubuntu tem uma das respostas que mencionou SimpleHTTPServer, mas falta de explicação.
-
Como posso acessar meu computador desktop quando ele está conectado ao meu telefone Android? no Superusuário discutiu encaminhamento de porta usando o iptables.
-
Como posso acessar meu host local no meu dispositivo Android? no Stack Overflow tem respostas confusas que lidam com o emulador e dispositivo real.