- > Android应用程序最终用户的IP地址
我在互联网上搜索了如何捕获实际使用我的ANDROID APPLICATION的用户的 IP ADDRESS ,但没有得到适合我的正确代码。
我正在Eclipse上开发这个Android应用程序。
在大多数论坛上,我得到的链接根本无法访问: http://www.droidnova.com/get-the-ip-address-of-your-device,304.html
需要你的支持人员。
由于
答案 0 :(得分:3)
您可以尝试以下代码。
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" />
答案 1 :(得分:1)
编辑:基于评论:这是获取客户端IP的服务器端角色,而不是Android作业。
下面是一个示例,您如何使用PHP执行此操作:$_SERVER['REMOTE_ADDR']
答案 2 :(得分:0)
或者,您可以告诉手机发送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 "";
}