您的位置:首页 > 理论基础 > 计算机网络

Android 获取本机WIFI及3G网络IP

2013-11-07 17:59 519 查看
获取本机WIFI
privateStringgetLocalIpAddress(){
WifiManagerwifiManager=(WifiManager)getSystemService(WIFI_SERVICE);
WifiInfowifiInfo=wifiManager.getConnectionInfo();
//获取32位整型IP地址
intipAddress=wifiInfo.getIpAddress();

//返回整型地址转换成“*.*.*.*”地址
returnString.format("%d.%d.%d.%d",
(ipAddress&0xff),(ipAddress>>8&0xff),
(ipAddress>>16&0xff),(ipAddress>>24&0xff));
}

3G网络IP
publicstaticStringgetIpAddress(){

try{
for(Enumeration<NetworkInterface>en=NetworkInterface
.getNetworkInterfaces();en.hasMoreElements();){
NetworkInterfaceintf=en.nextElement();
for(Enumeration<InetAddress>enumIpAddr=intf
.getInetAddresses();enumIpAddr.hasMoreElements();){
InetAddressinetAddress=enumIpAddr.nextElement();
if(!inetAddress.isLoopbackAddress()
&&inetAddressinstanceofInet4Address){
//if(!inetAddress.isLoopbackAddress()&&inetAddress
//instanceofInet6Address){
returninetAddress.getHostAddress().toString();
}
}
}
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}
publicStringgetLocalIpAddress(){ StringipAddress=null; try{ List<NetworkInterface>interfaces=Collections .list(NetworkInterface.getNetworkInterfaces()); for(NetworkInterfaceiface:interfaces){ if(iface.getDisplayName().equals("eth0")){ List<InetAddress>addresses=Collections.list(iface .getInetAddresses()); for(InetAddressaddress:addresses){ if(addressinstanceofInet4Address){ ipAddress=address.getHostAddress(); } } }elseif(iface.getDisplayName().equals("wlan0")){ List<InetAddress>addresses=Collections.list(iface .getInetAddresses()); for(InetAddressaddress:addresses){ if(addressinstanceofInet4Address){ ipAddress=address.getHostAddress(); } } } } }catch(SocketExceptione){ e.printStackTrace(); } returnipAddress; }  需添加如下权限:<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐