问题描述
我使用 ksoap2-的Android ,我需要得到使用Java这样我就不必手动输入每次的IP地址。
我的意思的IP地址,例如,如果我做的 IPCONFIG 使用命令shell:
连接特定的DNS后缀。 :
链路本地IPv6地址。 。 。 。 。 :F0 :: ED2:e3bf:8206:44%13
的IPv4地址。 。 。 。 。 。 。 。 。 。 。 :192.168.1.107 < - 这个
子网掩码 。 。 。 。 。 。 。 。 。 。 。 :255.255.255.0
默认网关 。 。 。 。 。 。 。 。 。 :192.168.1.1
事情是正在开发Android应用程序,和仿真器有不同的类型的IP的不是机器的。照片我需要得到本机的IP,这是怎么做?
非常感谢
公共字符串getLocalIpAddress(){
尝试 {
对于(枚举<的NetworkInterface> EN =的NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements()){
NetworkInterface的INTF = en.nextElement();
对于(枚举< InetAddress类> enumIpAddr = INTF
.getInetAddresses(); enumIpAddr.hasMoreElements()){
InetAddress类InetAddress类= enumIpAddr.nextElement();
如果(!inetAddress.isLoopbackAddress()){
返回inetAddress.getHostAddress()的toString()。
}
}
}
}赶上(SocketException前){
Log.e(标签,ex.toString());
}
返回 ;
}
I am using ksoap2-android and i need to get the IP address using java so that I don't have to type it manually everytime.
What i mean by IP address is , for example if I do ipconfig using the command shell:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : f0::ed2:e3bf:8206:44%13
IPv4 Address. . . . . . . . . . . : 192.168.1.107 <--THIS ONE
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
The thing is am developing an android app, and the emulator has a different type of IP's than the machine's .
I need to get the machine's IP , how is this to be done?
thanks a lot
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 "";
}
这篇关于获取计算机的ip地址在Android项目中使用Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!