--> Android 应用程序最终用户的 IP 地址
我已经在互联网上搜索了有关如何捕获实际使用我的 ANDROID 应用程序的用户的IP 地址的分配,但没有得到适合我的正确代码。
我正在 Eclipse 上开发这个 android 应用程序。
在大多数论坛上,我都得到了这个根本无法访问的链接: http ://www.droidnova.com/get-the-ip-address-of-your-device,304.html
需要你们的支持。
谢谢
--> Android 应用程序最终用户的 IP 地址
我已经在互联网上搜索了有关如何捕获实际使用我的 ANDROID 应用程序的用户的IP 地址的分配,但没有得到适合我的正确代码。
我正在 Eclipse 上开发这个 android 应用程序。
在大多数论坛上,我都得到了这个根本无法访问的链接: http ://www.droidnova.com/get-the-ip-address-of-your-device,304.html
需要你们的支持。
谢谢
你可以试试下面的代码。
public 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()) {
String ip = Formatter.formatIpAddress(inetAddress.hashCode());
return ip;
}
}
}
} catch (SocketException ex) {
//
}
return null;
}
不要忘记添加以下权限以允许您的应用程序打开网络套接字:
<uses-permission android:name="android.permission.INTERNET" />
编辑:基于评论:这是获取客户端 IP 的服务器端角色,而不是 Android 工作。这是一个示例,您如何使用 PHP 进行操作:$_SERVER['REMOTE_ADDR']
或者,您可以告诉您的手机发送 IP,而不是从服务器请求 IP。
您可以使用以下代码获取 IP 地址。
public 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()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e(tag, ex.toString());
}
return "";
}