Comment puis-je accéder à mon hôte local depuis mon appareil Android?


543

Je peux accéder à mon serveur Web portable à l'aide de l'émulateur Android, j'utilise bien les 10.0.2.2:portno travaux.

Mais lorsque je connecte mon vrai téléphone Android, le navigateur du téléphone ne peut pas se connecter au même serveur Web sur mon ordinateur portable. Le téléphone est connecté à l'ordinateur portable à l'aide d'un câble USB. Si j'exécute la commande adb devices, je peux voir mon téléphone.

Qu'est-ce que je rate?




3
Désactivez le pare-feu lors du test de votre page Web ou ajoutez votre adresse IP aux réseaux de confiance dans les paramètres du pare-feu.
zeeali


souper ez avec ngrok
JonPizza

Réponses:


403

L'USB ne fournit pas de réseau à l'appareil mobile.

Si votre bureau et votre téléphone sont connectés au même WiFi (ou à tout autre réseau local), utilisez ( localhostet non 127.0.0.1) l'adresse IP de votre bureau attribuée par le routeur .

Pour connaître l'adresse IP de votre bureau:

  • tapez dans la ligne de commande ipconfig(Windows) ou ifconfig(Unix)
    • sous Linux, le one-liner ifconfig | grep "inet " | grep -v 127.0.0.1ne donnera que les choses importantes
    • il y a un tas de suggestions sur la façon d'avoir une sortie similaire sur Windows
  • il va y avoir un tas d'IP
  • essayez-les tous (sauf ceux mentionnés ci localhost- dessus et 127.0.0.1)

Si votre téléphone est connecté au réseau mobile , les choses vont être plus difficiles.

Soit hardcore:

  • découvrez d'abord l'adresse IP externe de votre routeur ( https://www.google.de/search?q=myip )
  • puis, sur le routeur, transférez un port vers <your desktop IP>:<server port number>
  • enfin utiliser l'adresse IP externe et le port redirigé

Sinon, utilisez quelque chose comme xip.io ou ngrok .

REMARQUE : La ifconfigcommande est obsolète et donc manquante par défaut sur Debian Linux, à partir de l'étendue Debian. La nouvelle alternative recommandée pour examiner une configuration réseau sur Debian Linux est la commande ip. Par exemple, pour utiliser la commande ip pour afficher une configuration réseau, exécutez ce qui suit:

ip address

La commande ip ci-dessus peut être abrégée en:

ip a

Si vous préférez toujours l'utiliser ifconfigdans le cadre de votre routine d'administration sys quotidienne, vous pouvez facilement l'installer dans le cadre du net-toolspackage.

apt-get install net-tools

La référence est ici


Merci, c'était pour une grande aide pour moi. Le problème pour moi était que je ne savais pas que le serveur local apache pouvait être adressé via l'ip 10.0.2.2. ... J'essaye beaucoup d'autres adresses IP, comme celle de ipconfig etc. Mais encore une fois, merci beaucoup!
Vidar Vestnes du

4
Je ne comprends pas cette solution au problème. Pouvez-vous m'aider sur la façon dont mon téléphone peut accéder à mon serveur? J'espère que vous étoffez cette solution pour moi. Merci.
iremce

1
Lisez mon commentaire ci-dessous .. Vous devez également avoir une autorisation d'accès à Internet. <uses-permission android: name = "android.permission.INTERNET" />
Sanjay Kumar

3
@simo allez sur la page d'accueil de votre routeur, 10.0.0.1 pour XFinity, généralement 192.168.1.1 et connectez-vous, recherchez les appareils connectés ou les adresses IP locales, trouvez votre ordinateur et bam. Le mien était 10.0.0. #, Puis il suffit d'ajouter [10.0.0. # :( port) / Server / Servlet] ou autre chose
jp093121

2
Cela ne devrait pas être la réponse acceptée pour cette question. La redirection de port dans Chrome devtools et adb reverse fonctionne parfaitement avec un câble USB.
Roger Madsen

229

C'est en fait assez simple.

  • Allumez le point d'accès WiFi de votre téléphone / routeur Android et connectez votre ordinateur portable à votre téléphone
  • Démarrez votre serveur à localhost(j'utilise le serveur WAMP pour Windows)
  • Ouvrez maintenant l'invite de commande et entrez
ipconfig

Une fois que vous avez fait cela, vous verrez quelque chose comme ceci:

Adaptateur LAN sans fil Connexion réseau sans fil:
  Suffixe DNS spécifique à la connexion. :
  Adresse IPv6 de liaison locale. . . . . : fe80 :: 80bc: e378: 19ab: e448% 11
  Adresse IPv4. . . . . . . . . . . : 192.168.43.76
  Masque de sous-réseau. . . . . . . . . . . : 255.255.255.0
  Passerelle par défaut. . . . . . . . . : 192.168.43.1
  • Copiez l'adresse IPv4 (dans ce cas, c'est le cas 192.168.43.76)
  • Dans votre navigateur mobile, collez simplement l'adresse IPv4

Remarque: veuillez définir votre réseau comme " Réseau domestique ". La définition du réseau comme réseau domestique signifie que vous autorisez votre PC à partager des éléments avec d'autres appareils sur le même réseau.

Si vous utilisez Windows 10, cela peut être fait avec les éléments suivants:

  • Ouvrir les paramètres
  • Accédez à Réseau et Internet
  • Sélectionnez WiFi dans le menu de gauche
  • Appuyez sur le nom du WiFi connecté
  • Définissez le profil réseau du réseau comme privé

Si vous rencontrez un problème, cela est probablement lié au pare-feu Windows.

  • Ouvrez le panneau de configuration
  • Accédez au pare-feu Windows Defender
  • Appuyez sur Autoriser une application ou une fonctionnalité via le pare-feu Windows Defender
  • Vérifiez si l'application est activée pour les réseaux privés (il doit y avoir une coche)
  • S'il n'est pas activé, appuyez sur Modifier les paramètres et cochez la case sous Privé pour l'application

30
hm a fait ça mais le navigateur semble prendre une éternité à charger alors ça me donne un oops? Est-ce que je fais quelque chose de mal? Et qu'entendez-vous par réseau domestique
Lion789

12
N'oubliez pas de désactiver également le pare-feu de l'ordinateur.
Minh Nguyen du

2
Oui, la désactivation du pare-feu a aidé. Merci.
Beemo

2
* Réseau domestique c'est (: Le réseau domestique signifie que votre ordinateur est autorisé à partager des trucs avec les appareils du même réseau.
Leap Hawk

6
"Tapez sur Autoriser une application ou une fonctionnalité via le pare-feu Windows Defender Vérifiez si l'application est activée pour les réseaux privés (il doit y avoir une coche)" De quelle application parlez-vous?
Liz Lamperouge

71

Utilisateurs de Mac OS X

J'ai atteint cet objectif en activant la gestion à distance :

  • Assurez-vous que votre téléphone et votre ordinateur portable sont connectés au même réseau WiFi
  • Sur Mac, accédez à System preferences/sharing
  • Activer la gestion à distance

Vous verrez un message similaire à celui-ci:

  • Les autres utilisateurs peuvent gérer votre ordinateur en utilisant l'adresse some.url.com

Sur votre appareil Android, vous devriez maintenant pouvoir accéder à some.url.com, qui délègue localhostsur votre Mac. Vous pouvez également utiliser ifconfigpour obtenir l'adresse IP de votre Mac.


Solution portable avec ngrok(tout OS avec Node.js)

Si cela ne vous dérange pas d'exposer votre projet avec un domaine temporaire, vous pouvez l'utiliser ngrok. Disons que j'ai une application qui fonctionne, localhost:9460je peux simplement écrire

npm install ngrok -g

ngrok http 9460

Cela me donnera:

Statut de la session en ligne
Mise à jour disponible (version 2.2.8, Ctrl-U pour mettre à jour)
Version 2.2.3
Région États-Unis (us)
Interface Web http://127.0.0.1:4040
Transfert http://f7c23d14.ngrok.io -> localhost: 9460
Transfert https://f7c23d14.ngrok.io -> localhost: 9460

Connexions TTL OPN RT1 RT5 P50 P90
                              0 0 0,00 0,00 0,00 0,00 0,00

Je peux maintenant atteindre https://f7c23d14.ngrok.iocomme un moyen de visualiser à distance localhost. C'est formidable de partager le travail de conception ou de progresser avec les clients.


Solution alternative avec nginxproxy pass

Si vous exécutez quelque chose comme ça, nginx proxy_passcela nécessitera un peu plus de réglages - c'est une approche hacky, mais cela fonctionne pour moi et je suis ouvert aux suggestions pour l'améliorer:

  • Activer la gestion à distance (comme mentionné ci-dessus)
  • Définissez temporairement le serveur pour écouter sur le port 81par opposition à80
  • Tapez la commande suivante:
sudo nginx -s reload
  • Visite http://youripaddress:81
server {
  listen 80;
  listen 81;   # <-------- add this to expose the app on a unique port
  server_name  ~^(local|local\.m).example.com$;
  # ...
}

Recharger et visiter http://youripaddress:81


2
Si vous utilisez cette configuration de «gestion à distance», une autre chose utile à savoir est que si vous avez beaucoup de serveurs alias exécutés dans mamp, votre appareil mobile (connecté via USB) ne vous donnera accès qu'au premier <VirtualHost> qui est défini dans httpd-vhosts.conf alors déplacez simplement votre projet actuel en haut de la liste
DrewT

J'ai activé la gestion à distance sur mon Mac, comme vous l'avez dit, et on m'a donné un autre ensemble de cases à cocher pour différentes manières de gérer mon ordinateur à distance. Je les ai tous laissés sans contrôle sauf Observe, et cela a bien fonctionné pour moi. Mon serveur Web fonctionnait sur mon mac sur le port localhost 5555, et j'ai vu "d'autres utilisateurs peuvent gérer votre ordinateur en utilisant l'adresse 10.0.0.12", donc dans le navigateur de mon téléphone, j'ai tapé 10.0.0.12:5555 et j'ai vu ma page Web.
Marcus

Cela a fonctionné lors de l'utilisation de l'IP, 192.168.0.101mais le nom d'hôte n'a pas fonctionné.
Krishnadas PC

6
Sur un Mac, juste ALT + cliquez sur Wi-Fi dans votre barre de menu pour obtenir votre adresse IP.
matharden

J'ai désactivé mon pare-feu mais la connexion est toujours refusée, une idée de comment le faire fonctionner?
Unnikrishnan

67

Avec la solution simple (il suffit d'accéder à laptop_ip_addr:portpartir d'un appareil mobile, lorsque le mobile et l'ordinateur portable sont sur le même WiFi), j'obtiens une erreur ERR_CONNECTION_REFUSED . Autrement dit, mon MacBook semble refuser la tentative de connexion depuis mon mobile.


Prise inversée ADB (Android uniquement)

Cette solution fonctionne pour moi (testée avec un MacBook):

  1. Connectez un appareil mobile Android avec un câble USB à un ordinateur portable
  2. Activer le débogage USB sur un appareil mobile
  3. Sur un ordinateur portable, exécutez adb reverse tcp:4000 tcp:4000
    • Utilisez votre numéro de port personnalisé au lieu de 4000
  4. Maintenant, sur l'appareil mobile, vous pouvez naviguer vers http://localhost:4000/, et il se connectera réellement à l'ordinateur portable, pas à l'appareil mobile

Voir les instructions ici .

L'inconvénient est que cela ne fonctionne qu'avec un seul appareil mobile à la fois . Si vous souhaitez accéder à un autre appareil mobile, vous devez d'abord déconnecter le premier (désactiver le débogage USB ), connecter le nouveau (activer le débogage USB ) et réexécuter adb reverse tcp:4000 tcp:4000.


ngrok (fonctionne avec tous les appareils)

Une autre solution qui devrait toujours fonctionner est ngrok (comme mentionné dans d'autres réponses). Il fonctionne sur Internet et non sur le réseau local.

C'est extrêmement simple à utiliser:

brew cask install ngrok
ngrok http 4000

Cela produit, entre autres informations, une ligne comme

Forwarding                    http://4cc5ac02.ngrok.io -> localhost:4000

Maintenant, vous pouvez naviguer http://4cc5ac02.ngrok.iosur n'importe quel appareil connecté à Internet, et cette URL redirige vers localhost:4000votre ordinateur portable.

Notez que tant que la commande ngrok est en cours d'exécution (jusqu'à ce que vous appuyiez sur Ctrl-C ), votre projet est rendu public . Tous ceux qui ont l'URL peuvent le voir.


2
tu m'as sauvé la vie mec
To Be

Je vous remercie. Tu m'as beaucoup aidé. J'ai utilisé adb reverse en remplaçant simplement le port 4000 par 3000 et cela a fonctionné comme j'avais besoin.
Marcus Crisostomo

putain qui a finalement fonctionné, merci!
Alex

38

J'ai trouvé une solution rapide à ce problème. Essayez ce lien . Cela devrait vous aider à résoudre le problème.

J'ai seulement changé une chose, où le tutoriel indique que vous changez '127.0.0.1' en 'Tous', changez-le à l'adresse IP sur laquelle votre serveur fonctionne à la place.

Après cela, vous devriez pouvoir vous connecter à votre hôte local.


Vous trouverez ci-dessous une copie (relue) des informations de la page liée:

Étape 1

Installez le serveur Wamp (ou tout autre que vous préférez).

C'est l'un des meilleurs serveurs que je connaisse pour configurer un serveur local. Si vous avez installé Apache ou tout autre serveur, ignorez cette étape.

Téléchargez et installez Wamp Server à partir d'ici.

Étape 2

Ajoutez une nouvelle règle pour le port 80 dans le pare-feu Windows.

  1. Ouvrez le Panneau de configuration et sélectionnez Pare-feu Windows.

  2. Sélectionnez Paramètres avancés dans le panneau de gauche de la page des paramètres du Pare-feu Windows.

  3. Sélectionnez Règles entrantes dans le panneau de gauche, puis sélectionnez Nouvelle règle.

  4. Sélectionnez Port et cliquez sur Suivant.

  5. Sélectionnez le bouton radio «Ports locaux spécifiques» et entrez 80 comme valeur de port.

  6. Gardez Autoriser la connexion inchangée et passez à l'étape suivante.

  7. Gardez les options de profil inchangées et cliquez sur Suivant.

  8. Donnez un joli nom à votre nouvelle règle et cliquez sur Terminer.

Cela permettra l'accès au port 80 sur l'IP du réseau local.

Étape 3

Modifiez le fichier httpd.conf du serveur Wamp pour corriger l'erreur 403.

Nous devons modifier ce fichier. Sinon, nous obtiendrons l'erreur interdite 403 lorsque nous accèderons à l'hôte local via une IP de réseau local.

  1. Cliquez sur l'icône de la barre de serveur Wamp.

  2. Ouvrez le sous-menu du serveur Apache.

  3. Sélectionnez httpd.conf.

  4. Recherchez cette section de configuration dans le fichier httpd.conf:

    Directory c:/wamp/www/”
    #
    # Possible values for the Options directive are “None”, “All”,
    # or any combination of:
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that “MultiViews” must be named *explicitly* — “Options All”
    # doesn’t give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be “All”, “None”, or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride all
    
    #
    # Controls who can get stuff from this server.
    #
    
    # onlineoffline tag – don’t remove
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1

Recherchez et remplacez «127.0.0.1» par «Tout», enregistrez le fichier et redémarrez votre serveur Wamp.

Étape 4

Trouvez votre IP de réseau local.

  1. Ouvrez l'invite de commande.

  2. Tapez et entrez la ipconfigcommande.

  3. Dans mon cas, mon adresse de réseau local est 10.0.0.2.

Il s'agit de l'IP dont vous avez besoin pour accéder à votre hôte local sur votre téléphone Android via wifi. Pour tester si cela fonctionne, tapez cette adresse IP dans votre navigateur de bureau sur lequel votre serveur localhost est installé. Le navigateur devrait afficher votre page localhost avec succès. Cela garantira que cette IP de réseau local est désormais accessible avec succès sur votre téléphone Android.

J'espère que ce tutoriel vous aidera à accéder à votre hôte local via wifi.


Merci! cela a fonctionné si facilement. juste une chose; J'ai quitté httpd.conf as# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb

1
le didacticiel est basé sur Windows? wut?
abbood

1
le lien ne fonctionne plus, donc la réponse entière est inutile maintenant car les informations n'ont pas été ajoutées à SO pour savoir comment le faire.
rtack

Pour le serveur Wamp v3, j'obtenais une erreur interdite. Consultez cette réponse stackoverflow.com/questions/23382627/… sur la façon de modifier les informations vhosts (ne modifiez pas le fichier httpd.conf comme indiqué ci-dessus)
friek108

Il s'agit d'une version très ancienne de Wamp, les fichiers de configuration sont maintenant un peu plus compliqués. Surtout si vous utilisez la fonction VHosts. Je ne peux pas le comprendre, trop de couches de remplacements.
Jonathan

37

Sur un PC Windows, vous n'aurez peut-être rien d'autre à faire que de trouver votre adresse IPv4 à l'aide de la commande "ipconfig".

  • Étape 1: Connectez votre téléphone au PC à l'aide d'un câble USB.
  • Étape 2: Utilisez la commande 'ipconfig' pour trouver votre adresse IPv4 (IP externe du routeur), par exemple 192.168.1.5 dans mon cas.
  • Étape 3: Accédez simplement à "192.168.1.5:8080" à partir du navigateur de votre téléphone. Ça marche !

Autres détails d'env: Windows 7, Google Nexus 4 (4.2.2), Tomcat Server, Grails Application.

Vous devez également vous assurer que vous avez l'autorisation d'accéder à Internet dans le fichier AndroidManifest:

<uses-permission android:name="android.permission.INTERNET"/>

J'ai essayé mais ça continue de dire que "Connexion refusée". Pourquoi? :( Le port doit-il être 8080? Actuellement, mon service Web fonctionne sur un autre port.
Triet Doan

2
J'utilisais tomcat au port 8080. Vous pouvez ajouter votre propre port de serveur à la place de 8080.
Sanjay Kumar

et qu'en est-il d'une webapp? pas une application native
amdev

Je n'ai toujours pas accès à mon hôte local
Anna Leonenko

Je l'ai essayé mais ça ditjava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

Il existe cependant une bien meilleure solution. Vous pouvez accéder à votre machine hôte avec l'adresse IP "10.0.2.2". Cela a été conçu de cette manière par l'équipe Android. Ainsi, votre serveur Web peut parfaitement fonctionner sur localhost et à partir de votre application Android, vous pouvez y accéder via "http://10.0.2.2:8080".


4
C'est vrai, l'astuce consiste à spécifier l'adresse IP locale de votre machine et à y accéder via un routeur sans fil connecté entre votre appareil Android et votre machine aka système
Akhil Jain

Grand point, je cherchais exactement cela, pour communiquer l'émulateur avec localhost. Merci!!
Eagle

13

Comme il s'agit d'une vieille question, il existe une nouvelle façon de procéder qui est vraiment très simple. Téléchargez l' extension ADB Chrome et suivez ces instructions:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


3
Il n'est plus nécessaire de télécharger ADB, il est obsolète, mais rendez-vous sur developers.google.com/chrome-developer-tools/docs/… et suivez les instructions. Remarque: J'ai dû transmettre le port 8443 à l'hôte local: 8443
Dimitris

Est-ce que cela ne fonctionne que pour les appels URL de Chrome sur l'appareil ou est-il censé fonctionner également depuis mon application?
Orkun Ozen

3
Cela m'a mis sur la bonne voie - une réponse plus récente sur Chrome Dev Tools peut être trouvée ici: Android Chrome Reverse Port Forwarding
Richard Le Mesurier

Je suis resté bloqué parce que Google Chrome n'était pas installé sur mon appareil. Ah!
Chad Bingham

9

"Le transfert de port sur Chrome pour Android facilite le test de votre site de développement sur mobile. Il fonctionne en créant un port TCP d'écoute sur votre appareil mobile qui correspond à un port TCP particulier sur votre machine de développement. Le trafic entre ces ports passe par USB, la connexion ne dépend donc pas de la configuration de votre réseau. "

Plus de détails ici: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


9

Cette solution est utilisable lorsque votre appareil mobile et votre ordinateur ne sont pas sur le même réseau:

Vous devez utiliser la redirection de port dans ce cas. Dans la fenêtre d'inspection de Google Chrome (chrome: // inspect) Vous pouvez voir les appareils connectés. entrez la description de l'image ici

Cliquez sur le bouton de transfert de port et définissez un port aléatoire, par exemple 3000, sur le port utilisé par votre ordinateur portable, par exemple 8080.

entrez la description de l'image ici

utilisez maintenant localhost: 3000 à partir du périphérique pour accéder au localhost: 8080 (ou_wwhat_ip: portno) dans l'ordinateur portable. Vous pouvez le vérifier dans le navigateur mobile. Essayez localhost: 3000 dans le navigateur mobile. Assurez-vous de cocher la case "Activer la redirection de port" dans la fenêtre "Paramètres de redirection de port"


Je t'aime mec! Vous devez écrire un tutoriel avec ces étapes!
Rafael Gomes Francisco

7

Exécutez CMD en tant qu'administrateur

et sur l'écran CMD, tapez ipconfig et l'écran apparaîtra avec du texte

comme cette photo entrez la description de l'image ici

et vous pouvez accéder à votre hôte local en utilisant cette adresse IP, vous devez être connecté au même réseau que votre PC connecté à


éteignez simplement le pare
SalindaKrish

6

Votre serveur Web peut écouter sur votre interface de bouclage et non sur votre interface réseau. Les principaux signes en sont:

  • Visites sur 127.0.0.1et localhost(à partir de l'hôte local ou de l'émulateur Android)
  • Les succès 192.168.xxx.xxxne fonctionnent pas, que ce soit à partir de l'hôte local, du LAN ou du WAN

Je parle plus de diagnostiquer cela et de corriger cela dans une réponse ici .


6

Essayez d'accéder à ce fichier: C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf

#   onlineoffline tag - don't remove
    Order Deny,Allow
    Allow from all // change it Deny
    Allow from 127.0.0.1

Et remplacez 10.0.2.2 par votre adresse IP.


désolé changement pour autoriser tout le formulaire si c'est "Refuser"
bangptit

J'utilise XAMPP et cette vidéo m'a donné la réponse pour le faire fonctionner: youtube.com/watch?v=YrA_yN3gySs
Leon

5

enfin fait dans Ubuntu, j'utilise le serveur nodejs sur localhost: 8080

1) ouvrez le type de terminal ifconfig vous obtiendrez ip quelque chose comme ceci: inet addr: 192.168.43.17

2) il suffit maintenant de mettre l'adresse URL comme ceci: "192.168.43.17:8080" (port 8080 provenant du numéro de port localhost) ex: "192.168.43.17:8080/fetch"


cela ne fonctionne que pour moi lorsqu'il est connecté au même réseau. J'ai besoin de quelque chose qui fonctionne sans Internet
Geek Guy

5

Utilisez-le dans votre ubuntu / Macbook pour obtenir l'adresse IP de votre système. Votre mobile et votre système doivent être dans le même réseau

ip addr | grep inetCela vous donnera une adresse IP qui ressemble 192.168.168.46. Utilisez-le dans votre smartphone.

J'espère que cela t'aides.


4

J'ai utilisé ce processus:

  • Installer Fiddler sur le PC
  • Configurez votre PC et votre appareil Android en suivant ces excellentes instructions
  • Accédez simplement au navigateur de l'appareil Android et saisissez http: //ipv4.fiddler pour accéder à l'hôte local

Notez que ce processus vous oblige à modifier les paramètres WiFi sur l'appareil Android au début et à la fin de chaque session. J'ai trouvé cela moins douloureux que d'enraciner mon appareil Android.


4

Le moyen le plus simple de définir localhost par défaut est d'utiliser http: // localhost: port . Cela fonctionne également sur un ordinateur portable et Android.

Si cela ne fonctionne pas, dans Android, définissez l'adresse IP par défaut de votre téléphone sur 127.0.0.1:port :)

Terminal ouvert et tapez: -

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*

3

A rencontré ce problème en utilisant plusieurs serveurs locaux différents. Enfin, mon application a été opérationnelle sur le téléphone en quelques secondes en utilisant simplement le serveur Python. Cela ne prend que quelques secondes, il vaut donc la peine d'essayer avant de trouver des solutions plus compliquées. Tout d'abord, assurez-vous que Python est installé. cmd+ret tapez pythonpour Windows ou $ python --versiondans le terminal mac.

Prochain:

cd <your project root>

$ python -m SimpleHTTPServer 8000

Il suffit ensuite de trouver l'adresse de votre machine hôte sur le réseau, que j'ai utilisée System Preferences/Sharingsur mac pour la retrouver. Appuyez sur cela dans votre appareil Android et devrait charger votre index.htmlet vous devriez être bon.

Sinon, le problème est autre chose et vous voudrez peut-être examiner certaines des autres solutions suggérées. Bonne chance!

* ÉDITER *

Une autre solution rapide à essayer si vous utilisez Chrome est l'extension Web Server for Chrome. Je l'ai trouvé un moyen rapide et super facile d'accéder à localhost sur mon téléphone. Assurez-vous simplement de vérifier Accessible to local networksous Optionset cela devrait fonctionner sur votre cellule sans aucun problème.

entrez la description de l'image ici


Cela fonctionnera-t-il pour d'autres langages côté serveur que python?
MASh

3

ngrok vous permet de placer votre localhost sur un serveur temporaire et est très simple à configurer. J'ai fourni quelques étapes ici qui peuvent être trouvées dans le lien:

  1. Téléchargez le zip ngrok à partir du lien ci-dessus
  2. Ouvrez le zip
  3. Exécutez votre serveur localement et notez le numéro de port
  4. Dans le terminal, accédez au dossier où vit ngrok et tapez ngrok http [port number]

Vous verrez un petit tableau de bord dans votre terminal avec une adresse pointant vers votre hôte local. Pointez votre application vers cette adresse et créez-la sur votre appareil.


Ceci n'est utile que pour accéder au serveur en externe. Vous pouvez simplement utiliser l'adresse IP locale du serveur.
OneCricketeer

3

Tout d'abord, connectez votre téléphone et votre ordinateur au wifi commun.

Ensuite, ouvrez l'invite de commande en utilisant exécuter en tant qu'administrateur

Donner la commande ipconfig

Qui montre lan sans fil ip

Utilisez ip: port de votre serveur pour accéder au téléphone


2

Tout d'abord, rendez votre machine (où le serveur fonctionne) l'adresse IP statique. Saisissez cette adresse IP statique dans le code Android. Accédez ensuite à l'interface de votre routeur wifi et vérifiez le panneau de gauche. Vous verrez une option telle que la redirection de port / redirection. Cliquez dessus et transférez le port 80. Maintenant, éditez votre htttpd.conffichier et éditez-le pour

Autoriser de tous

. Redémarrez votre serveur. Tout devrait bien fonctionner maintenant.

De plus, vous pouvez réserver l'adresse IP de votre machine afin qu'elle vous soit toujours attribuée. Dans le panneau gauche de l'interface de votre routeur, recherchez DHCP -> Address Reservation, cliquez dessus. Saisissez l'adresse MAC de votre appareil et l'adresse IP que vous avez entrée dans le code. Cliquez sur enregistrer. Cela réservera l'adresse IP donnée à votre machine.


2

Une solution pour connecter mon appareil mobile à mon serveur Wamp basé sur mon ordinateur portable:

Tout d'abord, le wifi n'est pas un routeur. Donc, pour connecter mon appareil mobile à mon serveur Wamp en fonction de l'hôte local sur mon ordinateur portable, j'ai besoin d'un routeur. J'ai téléchargé et installé un routeur virtuel gratuit: https://virtualrouter.codeplex.com/

La configuration est vraiment simple:

  1. clic droit sur l'icône du routeur virtuel dans la barre d'état système
  2. cliquez sur Configurer le routeur virtuel
  3. remplir un mot de passe
  4. si votre connexion Internet est en ethernet, choisissez Connexion partagée: Ethernet
  5. Ensuite, activez le wifi sur votre ordinateur portable et votre appareil
  6. Sur votre appareil, connectez-vous au nom de réseau du routeur virtuel

Ensuite, vous pouvez vous connecter à votre ordinateur portable via votre appareil en lançant un navigateur et remplir l'adresse IPV4 de votre ordinateur portable (pour la trouver sur Windows, tapez cmd: ipconfig et trouvez l'adresse ipv4)

Vous devriez voir la page d'accueil de votre serveur Wamp.


2

Bien qu'une réponse ait été acceptée, cela a fonctionné pour moi:

  1. Assurez-vous que votre ordinateur et votre appareil Android sont sur le même réseau.
  2. obtenir l'adresse IP de votre ordinateur. (en cas de type mac à l' ifconfigintérieur du terminal et recherchez-le, en0/en1 -> inetcela devrait ressembler à quelque chose 19*.16*.1.4.) (sur windows, utilisez `ipconfig)
  3. Ouvrez vos paramètres mobiles et allez sur réseau-> appuyez longuement sur votre réseau wifi-> modifier le réseau -> faites défiler vers le bas pour les options avancées -> choisissez le manuel du proxy et dans le nom d'hôte du proxy tapez votre adresse, c'est- 19*.16*.1.4à- dire à l' intérieur du port entrez votre port. et enregistrez-le.

  4. recherchez what is my ipdans google chrome, et obtenez votre ip, disons que c'est1**.1**.15*.2**

  5. essayez d'accéder à 1**.1**.15*.2**:port/partir de votre appareil mobile.

C'est aussi simple que ça.


Vous n'avez pas besoin d'un proxy sur WiFi et vous n'avez pas besoin non plus de l'adresse IP externe dans un réseau local
OneCricketeer

2

C'est ce qui a fonctionné pour moi, j'ai ajouté une autre ligne après l'IP 127.0.0.1 pour spécifier l'adresse IP du réseau local exacte (pas l'adresse IP publique) du périphérique que je voulais utiliser. Dans mon cas, mon Samsung Galaxy S3

Comme suggéré par Bangptit, éditez le fichier httpd.conf (x étant les numéros de version): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf

Recherchez la balise onlineoffline et ajoutez l'ip de votre téléphone (j'ai trouvé l'adresse ip de mon téléphone dans les pages de configuration de mes routeurs):

balise onlineoffline - ne pas supprimer

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

mes téléphones ip dans la ligne ci-dessous

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

On pourrait étendre cela pour inclure également un sous-domaine entier, par exemple 192.168.1.0/24, etc.


2

Le moyen le plus simple (cela a parfaitement fonctionné pour moi) est d'héberger localement votre site 0.0.0.0:<port_no>et d'y accéder à l'aide d'appareils mobiles, à utiliser <local_ipv4_address>:<port_no>/<path>dans un navigateur.

  • Pour connaître votre adresse IPv4 locale, tapez simplement ipconfigcmd
  • TOUT appareil connecté au même réseau peut accéder à cette URL.

2

Ngrok est la meilleure solution. Si vous développez PHP, je recommande d'installer Laravel Valet , il a des versions MacOS et Linux, alors vous pouvez utiliser la valet sharecommande. Si vous développez une technologie frontale et que vous avez besoin de partager un port comme 3000, utilisez directement ngrokngrok http 3000


1

Ajout d'une solution pour les futurs développeurs.

Copiez l'adresse de votre adresse IP. clic droit sur votre réseau -> réseau et partage -> cliquez sur la connexion que vous avez actuellement -> détails -> puis l'adresse à côté de l'adresse ipv4 est votre adresse ip, notez-la quelque part

Allez dans le panneau de configuration -> système et sécurité -> pare-feu Windows -> paramètres avancés -> règles entrantes -> nouvelles règles (suivez les étapes pour ajouter un port, par exemple 80, c'est vraiment simple à suivre)

mettez votre adresse IP que vous avez notée sur le navigateur de votre téléphone et le numéro de port pour lequel vous avez créé la règle à côté. par exemple 192.168.0.2:80 et wala.

Solution possible s'il ne se connecte pas. cliquez avec le bouton droit sur réseau-> ouvrir le réseau et le partage-> regardez sous afficher vos connexions actives, sous le nom de votre connexion sur le type de connexion et cliquez dessus si elle est publique, et assurez-vous de la changer en réseau domestique.


1

Une autre chose à vérifier est que certains routeurs ont des problèmes de pontage des demandes lorsque les deux 2.4G et 5G sont activés et que les périphériques sont sur des fréquences différentes. Essayer de désactiver l'une des fréquences pour que les deux appareils soient connectés à la même interface.



0

Personnellement, je n'insiste pas pour utiliser localhost lors de l'utilisation de l'appareil, il n'y a pas de solution facile.

Commencez simplement l'activité où vous vous connectez à localhost où vous pouvez utiliser l'émulateur. Les informations que vous devez obtenir de l'appareil peuvent être générées facilement et envoyées à l'activité en tant que paramètre.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.