Avatar
1
Nguyễn Hữu Cường Beginner
Lấy địa chỉ ip khi kết nối 4g trong android
Em sử dụng code bên dưới để lấy địa chỉ ip khi kết nối internet. Khi sử dụng wifi thì lấy được, chuyển sang 4g thì không lấy được địa chỉ ip
WifiManager wifiManager = (WifiManager) requireActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
String ip = Formatter.formatIpAddress(wifiManager.getConnectionInfo().getIpAddress());
  • Answer
android networking
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
  1. Hiện cái em đang lấy không phải là địa chỉ ip address mà điện thoại kết nối internet, đó chỉ là địa chỉ trong mạng LAN thôi em ạ. Và với 4G thì nó luôn là 0.0.0.0 có lẽ bởi vì em đang connect 4G thì là không có kết nối LAN nào cả (anh cũng không chắc lắm)

  1. Để lấy được địa chỉ kết nối internet (WAN ip hay Public ip) thì anh thấy không thể lấy được từ thiết bị đang kết nối trong LAN, chắc chỉ có con modem hay router may ra mới biết được (thực tế anh không phải chuyên gia về mạng nên cũng không chắc 100%). Vậy nên để lấy được WAN Ip thì em sẽ cần dựng 1 con server HTTP với 1 Rest API, android của em sẽ gọi lên server này thì nó sẽ biết được địa chỉ WAN em gửi là gì, và API kia sẽ trả lại kết quả cho android là xong. Còn nếu em ngại dựng server, em có thể mua API của bên này nhé: https://www.whatismyip.com/api/
  • 1
  • Reply