我正在使用ksoap2-android,我需要使用java获取IP地址,这样我就不必每次都手动输入它。
IP地址的含义是,例如,如果我使用命令shell ipconfig :
特定于连接的DNS后缀。 :
链路本地IPv6地址。 。 。 。 。 :f0 :: ed2:e3bf:8206:44%13
IPv4地址。 。 。 。 。 。 。 。 。 。 。 :192.168.1.107 < - 这一个
子网掩码 。 。 。 。 。 。 。 。 。 。 。 :255.255.255.0
默认网关 。 。 。 。 。 。 。 。 。 :192.168.1.1
事情是开发一个Android应用程序,模拟器有一个不同于机器的IP类型。
我需要获得机器的IP,这是怎么做的?
非常感谢
答案 0 :(得分:8)
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 "";
}
答案 1 :(得分:4)
要获取Android设备的Ipaddress,请使用此代码。
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);
public String intToIp(int i) {
return ((i >> 24 ) & 0xFF ) + "." +
((i >> 16 ) & 0xFF) + "." +
((i >> 8 ) & 0xFF) + "." +
( i & 0xFF) ;
}
答案 2 :(得分:2)
试试此链接
http://www.droidnova.com/get-the-ip-address-of-your-device,304.html
你也可以尝试这个命令 adb shell netcfg
答案 3 :(得分:2)
InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());
另见