请选择 进入手机版 | 继续访问电脑版

牛大大的个人博客

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 179|回复: 1

Android 设备获取有线或无线网络的IP地址 address IP

[复制链接]

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
发表于 2021-5-5 10:34:44 | 显示全部楼层 |阅读模式
本帖最后由 牛大舅 于 2021-5-5 21:50 编辑
  1.   /**
  2.      * 获取IP
  3.      *
  4.      * @param context
  5.      * @return
  6.      */
  7.     public static String getIP(Context context) {
  8.         String ip = "0.0.0.0";
  9.         ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  10.         NetworkInfo info = connectivityManager.getActiveNetworkInfo();
  11.         int type = info.getType();
  12.         if (type == ConnectivityManager.TYPE_ETHERNET) {
  13.             ip = getEtherNetIP();
  14.         } else if (type == ConnectivityManager.TYPE_WIFI) {
  15.             ip = getWifiIP(context);
  16.         }
  17.         return ip;
  18.     }

  19.     /**
  20.      * 获取有线地址
  21.      *
  22.      * @return
  23.      */
  24.     public static String getEtherNetIP() {
  25.         try {
  26.             for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
  27.             {
  28.                 NetworkInterface intf = en.nextElement();
  29.                 for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
  30.                 {
  31.                     InetAddress inetAddress = enumIpAddr.nextElement();
  32.                     if (!inetAddress.isLoopbackAddress()&& inetAddress instanceof Inet4Address) {
  33.                         return inetAddress.getHostAddress().toString();
  34.                     }
  35.                 }
  36.             }
  37.         } catch (SocketException ex) {
  38.             Log.e("WifiPreference IpAddress", ex.toString());
  39.         }
  40.         return "0.0.0.0";
  41.     }

  42.     /**
  43.      * 获取wifiIP地址
  44.      *
  45.      * @param context
  46.      * @return
  47.      */
  48.     public static String getWifiIP(Context context) {
  49.         android.net.wifi.WifiManager wifi = (android.net.wifi.WifiManager) context.getSystemService(android.content.Context.WIFI_SERVICE);
  50.         WifiInfo wifiinfo = wifi.getConnectionInfo();
  51.         int intaddr = wifiinfo.getIpAddress();
  52.         byte[] byteaddr = new byte[] { (byte) (intaddr & 0xff),(byte) (intaddr >> 8 & 0xff), (byte) (intaddr >> 16 & 0xff),(byte) (intaddr >> 24 & 0xff) };
  53.         InetAddress addr = null;
  54.         try {
  55.             addr = InetAddress.getByAddress(byteaddr);
  56.         } catch (Exception e1) {
  57.             e1.printStackTrace();
  58.         }
  59.         String mobileIp = addr.getHostAddress();
  60.         return mobileIp;
  61.     }
  62.    
复制代码

回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2021-5-5 10:36:06 | 显示全部楼层
本帖最后由 牛大舅 于 2021-5-5 21:51 编辑

import java.net.InetAddress;
import java.net.Inet4Address;
import java.net.InetSocketAddress;
import java.net.NetworkInterface;   
import java.net.SocketException;
import java.net.URL;



getIP(this)
getIP(getApplicationContext())
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|牛大大的个人博客 ( 苏ICP备17043571号-2 )

GMT+8, 2021-6-16 14:54 , Processed in 0.182105 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表