適切な解決策が見つかりませんでした。以下のコードはローカルIPアドレスを示します(Wifiに接続した場合、192.168.0.xのようなIPアドレスを示します)が、パブリックIPアドレスが必要です(Googleで「私のIPは何ですか」を検索するのと同じです)
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException ex) {
ex.printStackTrace();
}
return null;
}
または
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
誰か助けてもらえますか?ありがとう!
ステップ1:リクエスターのIPアドレスを返すWebサービスを作成する
ステップ2:アプリからそのWebサービスを呼び出します。
デバイスはパブリックIPアドレスを認識していません(デバイスが深刻に誤って構成されていない限り)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加