Mengakses localhost PC dari perangkat seluler Android yang terhubung dengan USB

88

Saya memiliki perangkat android (Samsung galaxy tab) yang terhubung ke PC saya melalui USB.

Saya ingin menggunakan Layanan Web dan menjalankan halaman web yang terletak di server xampp lokal PC saya di perangkat android saya.

Saya dapat mencapainya jika saya memiliki keduanya, PC dan perangkat android saya, yang terhubung pada jaringan nirkabel yang sama.

Namun apakah mungkin untuk mengakses halaman localhost tanpa koneksi nirkabel, hanya menggunakan koneksi USB.

(PS: Skenario yang sama ini berfungsi ketika saya menjalankan aplikasi di emulator dan menggunakan ip 10.0.2.2 untuk mengakses localhost di PC saya)

saurabh
sumber
Silakan gunakan tautan di bawah stackoverflow.com/questions/4779963/… Ini berhasil untuk saya.
1
Matikan firewall saat menguji halaman web Anda atau tambahkan ip Anda ke jaringan terpercaya di pengaturan firewall.
zeeali
lihat blog ini mycodingchannel.in/blog/… untuk detailnya
kontashi35

Jawaban:

34

Saya akhirnya memecahkan masalah ini. Saya menggunakan Samsung Galaxy S dengan Froyo. "Port" di bawah ini adalah port yang sama dengan yang Anda gunakan untuk emulator (10.0.2.2:port). Apa yang saya lakukan:

  1. pertama hubungkan perangkat Anda yang sebenarnya dengan kabel USB (pastikan Anda dapat mengunggah aplikasi di perangkat Anda)
  2. dapatkan alamat IP dari perangkat yang Anda sambungkan, yang dimulai dengan 192.168.xx: port
  3. buka "Jaringan dan Pusat Berbagi"
  4. klik pada "Local Area Connection" dari perangkat dan pilih "Details"
  5. salin "alamat IPv4" ke aplikasi Anda dan ganti seperti: http://192.168.x.x:port/test.php
  6. unggah aplikasi Anda (lagi) ke perangkat Anda yang sebenarnya
  7. buka properti dan aktifkan "Penambatan USB"
  8. jalankan aplikasi Anda di perangkat

Sekarang seharusnya berfungsi.

Zsivics Sanel
sumber
Jika saya melakukan ini, saya mendapatkan pengecualian host yang tidak dikenal.
AaronF
4
Tampaknya jawaban ini, sementara berhasil, mengasumsikan bahwa perangkat Android dan komputer keduanya terhubung ke titik akses nirkabel yang bertentangan dengan apa yang ingin dicapai oleh penulis.
Jacobski
3
Perlu dicatat bahwa ini adalah solusi khusus Windows.
dotnetCarpenter
2
Saya setuju dengan @Jacob, ini tidak menjawab pertanyaannya. Pertanyaannya sendiri menyatakan bahwa dia dapat terhubung melalui wifi.
bradlis7
1
Ini tidak menjawab pertanyaan itu. Ini adalah jawaban yang benar: stackoverflow.com/a/53920173/2947592
wvdz
46

Google memposting solusi untuk masalah semacam ini di sini .

Langkah langkah:

  • Hubungkan perangkat Android Anda dan mesin pengembangan Anda dengan USB debugging diaktifkan
  • Buka Chrome di mesin pengembangan Anda, buka tab baru, klik kanan di tab browser baru, klik periksa
  • Klik ikon tiga titik di sisi kanan atas tiga titik, -> More Tools, Remote Devices.
  • Lihat di bagian bawah layar, pastikan nama perangkat Anda muncul di daftar dengan titik berwarna hijau.
  • Lihat di bawah di bagian pengaturan, periksa Port forwarding mark
  • Tambahkan aturan. Contoh, jika server web python Anda berjalan di mesin Anda localhost: 5000 dan Anda ingin mengaksesnya dari perangkat Anda port 3333, Anda mengetik 3333di bagian kiri, dan ketik localhost:5000, dan klik tambahkan aturan.
  • Voila, sekarang Anda dapat mengakses server web Anda dari perangkat Anda. Coba buka tab browser baru, dan kunjungi http: // localhost: 3333 dari perangkat Anda
Alfat Saputra Harun
sumber
Bekerja seperti yang diiklankan. Juga simpan port pada perangkat dan mesin yang sama dimungkinkan :). (Tidak yakin mengapa Anda ingin menggunakan port lain pada perangkat)
Ralf de Kleine
Ini harus menjadi jawaban yang diterima. Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk pengembang lokal Anda, ingatlah untuk menambahkan protokol SSL di tab Baru misalnya localhost: 5000 . Ini bekerja dengan sempurna.
turrican_34
5
"Panel ini sudah tidak digunakan lagi karena mendukung antarmuka chrome: // inspect / # devices, yang memiliki fungsi setara." Jadi cukup tempel chrome://inspect/#devicesdi chrome dan lompat ke langkah Penerusan port dari jawabannya.
craastad
Saya hanya menghabiskan lebih dari satu jam mencoba mencari cara untuk mendapatkan instruksi ini untuk bekerja dengan ERR_EMPTY_RESPONSEkembali dari Chrome di perangkat ... sampai akhirnya saya menyadari bahwa saya tidak menjalankan server localhost saya di desktop saya dan tidak ada benar-benar terhubung ke! Doh! Memulai server (Apache dalam hal ini) dan semuanya segera mulai berfungsi. Langkah pertama yang penting adalah memastikan server tujuan Anda benar-benar berjalan sebelum menyiapkan port forward.
CubicleSoft
ini adalah solusi terbaik
Raul Quispe
16

Saya telah membaca banyak forum dan mencoba aplikasi play tetapi tidak menemukan solusi sampai sekarang.

Skenario saya, saya yakin mirip dengan Anda, tetapi saya akan menjelaskan untuk membantu orang lain. Saya memiliki situs web dan layanan web yang dihosting secara lokal untuk digunakan oleh aplikasi android saya. Saya perlu ini bekerja di jalan untuk demonstrasi hanya dengan laptop saya dan tanpa koneksi jaringan.

Catatan: Menggunakan iPhone saya sebagai hotspot wifi dan menghubungkan PC dan perangkat Android saya berfungsi, tetapi koneksi iPhone 4S lambat dan terputus secara teratur.

Solusi saya adalah sebagai berikut:

  • Cabut kabel jaringan pada PC dan matikan wifi.
  • Matikan wifi di perangkat android
  • Hubungkan android ke pc melalui USB
  • Nyalakan "USB Tethering" di menu android. (Di bawah jaringan-> lebih ...-> Penambatan dan hotspot portabel ")
  • Dapatkan IP komputer Anda yang telah ditetapkan oleh kabel tether USB. (buka command prompt dan ketik "ipconfig" lalu cari IP yang telah ditetapkan oleh adaptor jaringan USB)
  • Buka browser di PC menggunakan alamat IP yang ditemukan, bukan localhost untuk menguji. yaituhttp://192.168.1.1/myWebSite
  • Buka browser di android dan uji kerjanya
John
sumber
1
Saya memiliki Nexus 10 dan saya tidak dapat membuatnya berfungsi untuk saya, tetapi saya sangat membutuhkannya. Tidak ada opsi tethering !?
Ludus H
Saya punya masalah juga di moto g5s plus. Saya menetapkan masih belum bekerja.
Jigar Fumakiya
5

Ini adalah bagian dari kode aplikasi Android saya:

Aplikasi ini dapat berkomunikasi dengan model get-post HTTP antara servlet yang berjalan di server dan perangkat Android yang dicolokkan dalam mode USB-Debuggable ( karena aplikasi sedang dalam proses pengembangan ).

Saya juga dapat menjalankan aplikasi melalui Wi-Fi saat server, Tomcat Apache 7, berjalan ( saat pengembangan aplikasi selesai ).

masukkan deskripsi gambar di sini

Untuk mendapatkan alamat IP Anda

  1. Buka Command Prompt
  2. Tipe ipconfig
  3. Tekan enter

Dalam daftar, Alamat IPv4 adalah IP Anda.

cagcak
sumber
Ini tidak akurat. Mode debuggable USB tidak menyediakan koneksi jaringan, dan penerusan ADB juga tidak akan mengizinkan perangkat untuk menghubungi PC. Menurut penampilan, Anda menggunakan koneksi jaringan melalui USB yang kemungkinan disediakan oleh alat tethering, bukan debugging USB. Pilihan lainnya adalah melakukan tunnel ssh melalui forward ADB.
Chris Stratton
Saya tidak bermaksud bahwa mode usb-debugable menyediakan koneksi jaringan. Namun sayangnya, itulah satu-satunya cara untuk menjalankan beberapa perintah internal yang berasal dari proyek aplikasi Android ke server web yang disematkan ke Android Studio. Terima kasih atas perhatian Anda, hal ini akan membingungkan developer baru. Diedit sebagai kemajuan aplikasi dalam pengembangan di Android Studio.
cagcak
Masih belum ada jawaban di sini yang menyediakan metode untuk mencapai konektivitas ke arah ini. "Mode USB-debuggable" tidak melakukan itu, jadi tanpa deskripsi akurat tentang bagaimana Anda melakukannya, tidak ada solusi di sini .
Chris Stratton
4

Saya melakukan ini di komputer windows dan itu bekerja dengan sempurna!

Nyalakan USB Tethering di ponsel Anda. Ketik ipconfig di command prompt di komputer Anda dan temukan ipv4 untuk "adaptor ethernet koneksi area lokal x" (kebanyakan yang pertama) Sekarang buka browser seluler Anda, ketik ipv4 itu dengan nomor port aplikasi web Anda. misalnya: - 192.168.40.142:1342

Ini bekerja dengan langkah-langkah sederhana itu!

Binu Jasim
sumber
4

Cara Mudah mengakses LocalHost di Perangkat Android Sebenarnya -> Hubungkan pc Anda dengan perangkat android melalui USB

  1. Buka pemeriksaan Chrome, klik 'f12' atau Control + Shift + C

Alat Inspeksi Chrome

  1. Periksa bagian bawah alat inspeksi krom.

  2. Sekarang masuk ke pengaturan di Tab Perangkat Jarak Jauh.

Tab Perangkat Jarak Jauh

  1. periksa opsi "Temukan Perangkat USB" serta centang opsi "Penerusan Port".

  2. Sekarang Klik Tambah Aturan, Masukkan Port Perangkat Apa Pun misalnya (4880) dan di Alamat Lokal Masukkan Alamat Aktual dari host lokal dalam kasus saya misalnya (127.0.0.1:480)

  3. Setelah Menambahkan Aturan, buka studio android Anda -> di dalam URL kode Anda ( http://127.0.0.1:4880 ). Ingatlah untuk mengubah port dari 480 -> 4880.

  4. Buka Tab Perangkat Jarak Jauh di Chrome dan Klik Perangkat Anda yang terhubung. Tambahkan URL Baru (127.0.0.1:4880) Periksa Perangkat Android Browser Chrome

Periksa Perangkat Aktual Browser Chrome Anda dan mulai Debugging kode pada perangkat Android Aktual.

kader hussain
sumber
1

Periksa opsi jenis koneksi USB. Anda harus memiliki satu yang disebut "Internet melewati". Itu akan membiarkan ponsel Anda menggunakan koneksi yang sama dengan PC Anda.

codemonkey
sumber
Itulah satu-satunya cara yang saya ketahui untuk menggunakan koneksi PC melalui USB. Jadi untuk perangkat Anda, saya kira jawabannya tidak. Simulator berfungsi karena berbagi koneksi PC Anda.
codemonkey
Saya tahu perangkat HTC baru dengan Sense 3 memiliki opsi (Ex the Sensation)
codemonkey
terima kasih banyak atas bantuannya. masih untuk memeriksa apakah ada opsi yang berfungsi.
saurabh
1

Saya sangat menyukai jawaban John, tetapi saya ingin memberikan beberapa perubahan pada mereka yang ingin menguji beberapa konfigurasi klien // server dengan menjalankan klien TCP pada Seluler yang terhubung dengan USB dan server pada PC lokal.

Pertama, cukup jelas bahwa 10.0.2.2 tidak akan berfungsi karena ini adalah perangkat keras seluler NYATA dan bukan simulator.

Jadi Ikuti instruksi John:

  • Cabut semua kabel jaringan pada PC dan matikan wifi.
  • Matikan wifi di perangkat android
  • Hubungkan perangkat android ke pc melalui USB
  • Nyalakan "USB Tethering" (USB Modem / USB Cellular Modem / USB שימוש כמודם סלולרי) di menu android. (Di bawah jaringan-> lebih ...-> Penambatan dan hotspot portabel ")

    • Koneksi USB ini akan bertindak sebagai server DHCP untuk koneksi PC tunggal Anda, jadi itu akan menetapkan PC Anda IP khusus (dinamis) di jaringan USB lokalnya. Sekarang yang harus Anda lakukan adalah memberi tahu aplikasi klien IP dan port ini.
  • Dapatkan IP PC Anda (yang telah ditetapkan oleh kabel tether USB.) (Buka command prompt dan ketik "ipconfig" lalu cari IP yang telah ditetapkan oleh adaptor jaringan USB, di Linux ifconfigatau "Informasi koneksi" Ubuntu, dll. ..)

  • Beri tahu aplikasi untuk terhubung ke IP itu (yaitu 192.168.42.87) dengan sesuatu seperti (Java - sisi klien):

    String        serverIP      = "192.168.42.87";
    int           serverPort    = 5544;
    InetAddress   serverAddress = InetAddress.getByName(serverIP);
    Socket        socket         = new Socket(serverAddress, serverPort);
    ...
    

    Nikmati..

JamesC
sumber
1

Halo, Anda dapat mengakses xampp localhost Anda dengan

  1. Panel kontrol ->
  2. firewall windows defender ->
  3. Pengaturan lanjutan (di sisi kiri) -> Aturan Masuk -> Aturan Baru -> Port -> di port lokal tertentu tulis port Apache Anda -> selanjutnya -> selanjutnya Anda dapat mengakses localhost Anda dengan menggunakan PC lokal Alamat IP:
pengguna3285339
sumber
0

Menghubungkan ponsel android melalui kabel USB dan mengakses server http di Komputer.

  1. Firewall - matikan, setelah semuanya berfungsi, Anda dapat menambahkan aturan di bawah Aturan masuk, mengaktifkan Server HTTP Apache (UDP dan TCP) (atau server HTTP apa pun yang Anda gunakan) Peringatan - jika Anda mematikan firewall, komputer Anda menjadi rentan untuk serangan internet. Jadi matikan internet dan putuskan dari jaringan terlebih dahulu. Anda tidak perlu berada di Internet agar ini berfungsi, karena Anda menghubungkan dua perangkat di jaringan lokal.

  2. Colokkan kabel USB. Jika jendela jaringan muncul, pilih Jaringan Rumah. Jika tidak muncul itu mungkin diatur ke Publik (yang tidak akan berfungsi), jadi buka: Panel Kontrol \ Jaringan dan Internet \ Jaringan dan Pusat Berbagi (di win7) dan atur ke Jaringan Rumah di sana. Ini mungkin memberi Anda layar berikutnya setelah Anda menekannya untuk berbagi Gambar, Musik ... cukup klik batal di atasnya. Di layar utama, Jaringan Rumah akan tetap aktif.

  3. Anda membutuhkan IP Komputer, localhost atau alias lainnya tidak berfungsi. Untuk mendapatkan IP mesin Anda, jalankan shell baris perintah Windows (tekan Windows Key + R dan ketik cmd), jendela prompt perintah hitam akan muncul, ketik: "ipconfig" dan tekan enter. Sekarang cari

Alamat IPv4. . . . . . . . . . . : 192.168. ###. ### Itulah IP yang ditetapkan ponsel Anda ke komputer

  1. Sekarang Anda harus selesai, di browser ponsel, coba akses file html uji dari server komputer Anda, itu akan ditampilkan dengan baik.

  2. Sekarang semuanya berfungsi, Anda mungkin ingin mengaktifkan firewall dan akses Internet di komputer Anda. Sekarang coba akses server http Anda lagi. Ini mungkin tidak akan berhasil. Bergantung pada penyiapan Anda, Anda mungkin mendapatkan munculan yang meminta Anda untuk menambahkan aturan untuk mengizinkannya, tetapi jika tidak, tambahkan saja sendiri. Mulai firewall windows dan masuk ke Inbound Rules (karena ini server) dan tambahkan New Rule. Pilih "Program". Temukan exe server http Anda, dan di layar berikutnya pastikan Izinkan dipilih. Coba hubungkan lagi, dan sekarang seharusnya berfungsi. Jika tidak, mungkin karena Anda salah memilih exe. Anda bahkan dapat melangkah lebih maju untuk membatasi penggunaan luar (karena sekarang semua orang di internet dapat mengaksesnya jika mereka memiliki alamat IP Internet Anda). Untuk membatasi akses Anda dapat mengklik kanan pada aturan baru yang baru saja Anda buat,

    Catatan untuk pengembang Android, sekarang dalam kode android Anda, Anda harus menggunakan "http: //", jika tidak maka tidak akan berfungsi. Misalnya: MyAsyncTask.execute ("http://192.168.123.123/test.html")

Bagian II - Mengatur IP ke tetap / statis.

Sekarang semuanya berfungsi, setiap kali Anda mencabut kabel dan mencolokkannya kembali, IP Anda akan berubah. Dan jika Anda menggunakannya di suatu tempat seperti di dalam kode, Anda harus memperbaruinya setiap saat! Solusi yang saya temukan adalah mengatur IP menjadi statis.

  1. Setelah telepon terhubung dan ditambatkan, kembali ke Jaringan dan Pusat Berbagi dan klik pada koneksi Area Lokal "Koneksi:"

tangkapan layar

  1. Pada layar berikutnya pilih Properties, kemudian sorot IP 4 dan tekan properti di sana dan klik "Gunakan alamat IP berikut"
  2. Letakkan Gateway Default dan Subnet Mask persis seperti di ipconfig, dan untuk Alamat IP, hanya ubah 3 digit terakhir menjadi apa pun dari 1 hingga 255

tangkapan layar

IP itu akan menjadi IP tetap / statis baru Anda dan akan tetap sama saat Anda mencolokkan telepon lagi.

Emil
sumber
0
  1. Pastikan Anda telah menginstal adb di komputer , USB debugging diaktifkan di ponsel , dan ponsel mengizinkan akses ke komputer. Colokkan telepon ke komputer melalui kabel USB, dan pastikan itu terlihat (itu akan muncul di perintah Bash adb devices.
  2. Di browser Chrome komputer Anda, buka chrome: // inspect / # devices , klik tombol "Port forwarding", centang "Enable port forwarding", dan tambahkan port di komputer yang ingin Anda akses dari ponsel ( petunjuk mendetail sini ). Anda harus tetap membuka tab yang menjalankan chrome: // inspect / # devices.
  3. Di browser ponsel Anda, navigasikan ke localhost: [port_number], dan itu akan menampilkan apa pun yang berjalan di komputer.

Ini berfungsi di Windows dan Ubuntu Linux, dan juga harus bekerja di Mac.

Josh
sumber
0

Masalah yang saya hadapi mungkin akan membantu seseorang, saya bekerja lama di mana pc dan perangkat android saya terhubung ke jaringan WiFi yang sama dan perangkat android terhubung melalui alamat IPV4 dari pc dengan port terbuka 8080 melewati dinding api.

SATU HARI: Saya menginstal emulator Genymotion untuk men-debug UI di layar yang berbeda. TERIMA KASIH untuk konfigurasi jaringan Genymotion / Virtualbox itu merusak adaptor WiFi saya.

Perbaikannya adalah mengkonfigurasi ulang pengaturan IPV4 / TCP pada adaptor jaringan WiFi:

masukkan deskripsi gambar di sini

Stav Bodik
sumber