1.获取手机IP地址的代码:

public static String getLocalIpAddress(){

try{

for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {

NetworkInterface intf = en.nextElement();

for (Enumeration enumIpAddr = intf

.getInetAddresses(); enumIpAddr.hasMoreElements();) {

InetAddress inetAddress = enumIpAddr.nextElement();

if (!inetAddress.isLoopbackAddress()) {

return inetAddress.getHostAddress().toString();

}

}

}

}catch (SocketException e) {

// TODO: handle exception

Utils.log("WifiPreference IpAddress---error-" + e.toString());

}

return null;

}

但是在4.0 下 会出现类似fe80::b607:f9ff:fee5:487e的IP地址, 这个是IPV6的地址,我们需要获得是的IPV4的地址,所以要在上诉代码中加一个判断

InetAddressUtils.isIPv4Address(inetAddress.getHostAddress());

2.完整代码如下:

public static String getLocalIpAddress(){

try{

for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {

NetworkInterface intf = en.nextElement();

for (Enumeration enumIpAddr = intf

.getInetAddresses(); enumIpAddr.hasMoreElements();) {

InetAddress inetAddress = enumIpAddr.nextElement();

if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(inetAddress.getHostAddress())) {

return inetAddress.getHostAddress().toString();

}

}

}

}catch (SocketException e) {

// TODO: handle exception

Utils.log("WifiPreference IpAddress---error-" + e.toString());

}

return null;

}

获取android手机当前ip地址

public class NetWorkUtils {

/**

* 检查网络是否可用

*

* @param paramContext

* @return

*/

public static boolean checkEnable(Context paramContext) {

boolean i = false;

NetworkInfo localNetworkInfo = ((ConnectivityManager) paramContext

.getSystemService("connectivity")).getActiveNetworkInfo();

if ((localNetworkInfo != null) && (localNetworkInfo.isAvailable()))

return true;

return false;

}

/**

* 将ip的整数形式转换成ip形式

*

* @param ipInt

* @return

*/

public static String int2ip(int ipInt) {

StringBuilder sb = new StringBuilder();

sb.append(ipInt & 0xFF).append(".");

sb.append((ipInt >> 8) & 0xFF).append(".");

sb.append((ipInt >> 16) & 0xFF).append(".");

sb.append((ipInt >> 24) & 0xFF);

return sb.toString();

}

/**

* 获取当前ip地址

*

* @param context

* @return

*/

public static String getLocalIpAddress(Context context) {

try {

// for (Enumeration en = NetworkInterface

// .getNetworkInterfaces(); en.hasMoreElements();) {

// NetworkInterface intf = en.nextElement();

// for (Enumeration enumIpAddr = intf

// .getInetAddresses(); enumIpAddr.hasMoreElements();) {

// InetAddress inetAddress = enumIpAddr.nextElement();

// if (!inetAddress.isLoopbackAddress()) {

// return inetAddress.getHostAddress().toString();

// }

// }

// }

WifiManager wifiManager = (WifiManager) context

.getSystemService(Context.WIFI_SERVICE);

WifiInfo wifiInfo = wifiManager.getConnectionInfo();

int i = wifiInfo.getIpAddress();

return int2ip(i);

} catch (Exception ex) {

return " 获取IP出错鸟!!!!请保证是WIFI,或者请重新打开网络!\n" + ex.getMessage();

}

// return null;

}

}

Android中获取本机ip地址和MAC地址

通过InetAddress.getLocalHost()得到始终是“127.0.0.1”,要想得到真正的网络ip地址要通过下面的方法:

首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下:

//必写

//必写

主要函数代码如下:

// 得到本机ip地址

public String getLocalHostIp()

{

String ipaddress = "";

try

{

Enumeration en = NetworkInterface

.getNetworkInterfaces();

// 遍历所用的网络接口

while (en.hasMoreElements())

{

NetworkInterface nif = en.nextElement();// 得到每一个网络接口绑定的所有ip

Enumeration inet = nif.getInetAddresses();

// 遍历每一个接口绑定的所有ip

while (inet.hasMoreElements())

{

InetAddress ip = inet.nextElement();

if (!ip.isLoopbackAddress()

&& InetAddressUtils.isIPv4Address(ip

.getHostAddress()))

{

return ipaddress = "本机的ip是" + ":" + ip.getHostAddress();

}

}

}

}

catch (SocketException e)

{

Log.e("feige", "获取本地ip地址失败");

e.printStackTrace();

}

return ipaddress;

}

// 得到本机Mac地址

public String getLocalMac()

{

String mac = "";

// 获取wifi管理器

WifiManager wifiMng = (WifiManager) getSystemService(Context.WIFI_SERVICE);

WifiInfo wifiInfor = wifiMng.getConnectionInfo();

mac = "本机的mac地址是:" + wifiInfor.getMacAddress();

return mac;

}

Android 获取wifi的IP地址

WifiManager wifimanage=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);//获取WifiManager

//检查wifi是否开启

if(!wifimanage.isWifiEnabled()) {

wifimanage.setWifiEnabled(true);

}

WifiInfo wifiinfo= wifimanage.getConnectionInfo();

String ip=intToIp(wifiinfo.getIpAddress());

//将获取的int转为真正的ip地址,参考的网上的,修改了下

private String intToIp(int i) {

return (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF)? + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF );

}

OK,这样就好了吗?呵呵,别忘记加上权限

总结:大家可以对比一下,Android 获取手机 IP 地址的方法,以免在编程的过程中造成不必要的问题.

android模拟ip地址,安卓 获取手机IP地址的实现代码相关推荐

  1. php获取手机ip地址,获取手机的ip地址

    获取手机的ip地址 2014年10月14号 发表于:评论 () 热度:1287 随着手机功能的不断完善,手机网站的开发日趋简单,所以很多人都趋于用html不限定宽度的方式来写电脑网页.同样的,手机浏览 ...

  2. 如何正确获取手机IP地址

    随着手机功能的不断完善,手机网站的开发日趋简单,所以很多人都趋于用html不限定宽度的方式来写电脑网页.同样的,手机浏览器也不单单只支持wml格式的文件.除了不支持JS脚本程序以外,和电脑访问几乎没有 ...

  3. android获取ip方法,Android开发准确获取手机IP地址的两种方式

    最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下获取ip地址的两种方式. 比如微信支付,后台在做接口的时候,要求App端传入IP地址,我们需要判断是网络环境,WI-FI还是3G, ...

  4. android socket gprs 与 wifi 网络切换,Android应用开发Android 获取手机Wifi地址和Gprs地址,反射修改Wifi地址...

    Android 获取手机Wifi地址和Gprs地址,反射修改Wifi地址. //查看Wifi地址publicString   getWifiIpAddress() { //获取wifi服务WifiMa ...

  5. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

  6. 安卓获取手机视频和图片

    安卓获取手机视频和图片 获取手机本地视频 首先需要获得手机内存权限 在AndroidManifest.xml中添加代码,获得读取权限 android.permission.READ_EXTERNAL_ ...

  7. html5获取gps坐标,html5获取手机GPS信息的示例代码

    html5获取手机GPS信息的示例代码function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCu ...

  8. Java获取iphone手机gps信息_html5获取手机GPS信息的示例代码分享

    html5获取手机GPS信息的示例代码分享:function getLocation() { if (navigator.geolocation) { navigator.geolocation.ge ...

  9. php获取接口url地址,PHP 获取完整URL地址

    /** * 获取当前完整URL * @return string */ function get_url() { $sys_protocal = isset($_SERVER['SERVER_PORT ...

最新文章

  1. 太强了!Kaggle竞赛宝典方案汇总
  2. python库有什么用_Python程序员必知什么 常用的Python库有哪些
  3. Extjs嵌入html
  4. java后端做教育视频网站源码_【Java并发面试点】看这一篇应该是够了
  5. 转 Linux调优方案,sysctl.conf的设置
  6. 游戏笔记本计算机购买,游戏笔记本电脑推荐 三分钟售罄TA为何如此火爆?
  7. 《Java 8实战》读书笔记
  8. 开源C++/C代码检查工具
  9. 超声波皮肤注入器行业研究及十四五规划分析报告
  10. DIV布局末大作业:美食网站设计——餐饮美食-咖啡(5页) HTML5网页设计成品_学生DW静态食品网页设计_web课程设计网页制作
  11. HDU 2000 Java 奇怪的jio
  12. 数据结构:新冠病毒检测
  13. 电脑怎么录屏幕视频带声音?电脑录屏教程介绍
  14. 关于Navicat到期的办法(亲测有效)
  15. 计算机开机屏幕英语,电脑开机进不了系统,屏幕一堆英文数字怎么办?别急有方法...
  16. 从程序员的观点看 汉字国标与Unicode
  17. MySQL查询报错Unknown column ‘new_edition‘ in ‘IN/ALL/ANY subquery‘
  18. 编译相关(非原创 读书笔记)
  19. 机器人越来越聪明了,是否应该赋予TA更多的权利? | 讨论
  20. VVC 算法描述 R2002(VTM 9) IBC部分 机器翻译

热门文章

  1. 微星电脑不能u盘引导linux,华硕笔记本u盘重装微星怎么启动不了系统系统系
  2. 以专业的姿态铸造优质的服务——苏总
  3. Next.js国际化配置
  4. vue移动端兼容性配置
  5. [系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例
  6. 电子词典的实现(一)
  7. 华为手机永久关闭/开启系统更新(通过ADB模式)
  8. 团队项目用户验收评审
  9. 喜剧演员泽连斯基到底靠什么,能够从喜剧演员一路走到总统?
  10. [转载]苹果公司与分工原理