权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.util.StringBuilderPrinter;
import android.widget.TextView;import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;/*** Created by Administrator on 2016/9/23 0023.*/
public class IpInfoActivity extends AppCompatActivity {public static String hostip;             //本机IPpublic static String hostmac;            //本机MAC/*** Called when the activity is first created.*/@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TextView tv = new TextView(this);setContentView(tv);StringBuilder sb = new StringBuilder();sb.append("网络状态:").append(getCurrentNetType(this)).append("\n");ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getActiveNetworkInfo();if (info == null) {sb.append("获取IP 失败");} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {sb.append("WIFI IP地址:").append(getWifiIp());} else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {sb.append("手机 IP地址:").append(getIpAddress());}tv.setText(sb.toString());}public static String getIpAddress() {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()&& inetAddress instanceof Inet4Address) {// if (!inetAddress.isLoopbackAddress() && inetAddress// instanceof Inet6Address) {return inetAddress.getHostAddress().toString();}}}} catch (Exception e) {e.printStackTrace();}return null;}public String getWifiIp() {WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();// 获得IP地址的方法一:int ipAddress = info.getIpAddress();String ipString = "";if (ipAddress != 0) {ipString = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "."+ (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));}return ipString;}public String getLocalMacAddress() {WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();return info.getMacAddress();}public static String getCurrentNetType(Context context) {String type = "";ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getActiveNetworkInfo();if (info == null) {type = "null";} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {type = "wifi";} else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {int subType = info.getSubtype();if (subType == TelephonyManager.NETWORK_TYPE_CDMA || subType == TelephonyManager.NETWORK_TYPE_GPRS|| subType == TelephonyManager.NETWORK_TYPE_EDGE) {type = "2g";} else if (subType == TelephonyManager.NETWORK_TYPE_UMTS || subType == TelephonyManager.NETWORK_TYPE_HSDPA|| subType == TelephonyManager.NETWORK_TYPE_EVDO_A || subType == TelephonyManager.NETWORK_TYPE_EVDO_0|| subType == TelephonyManager.NETWORK_TYPE_EVDO_B) {type = "3g";} else if (subType == TelephonyManager.NETWORK_TYPE_LTE) {// LTE是3g到4g的过渡,是3.9G的全球标准type = "4g";}}return type;}
}

根据网络状态获取Ip地址相关推荐

  1. Linux下配置CentOS7网络设置 获取ip地址

    1.查看ip地址 ip addr 2.编辑网卡配置文件 cd /etc/sysconfig/network-scripts vi ifcfg-ens33 修改里面的ONBOOT=NO 改成:ONBOO ...

  2. android获取4g网络ip,android 获取ip地址,获取2,3,4g,wifi状态等

    1.获取ip地址 public String getLocalIpAddress() { if(((ConnectivityManager) this.getSystemService(Context ...

  3. Linux网络配置——从自动获取IP地址转为固定IP地址

      众所周知,Linux中有两种获取ip的方式,那么自动获取IP地址和指定IP地址有什么区别和特点呢?为什么Linux程序员都需要使用固定IP地址呢? 如下所示: 两种获取方式的优缺点 1. 自动获取 ...

  4. 虚拟机的安装和linux操作系统(RedHat.8.5)的安装。将虚拟机的网络连接模式分别调换成仅主机模式,nat模式,桥接模式并获取ip地址使用ssh通过不同用户远程连接。在linux系统下破解密码

    目录 一.在VMware上如何创建虚拟机以及安装linux操作系统. 二.修改主机名为server.local. 三.将虚拟机的网络连接模式分别调换成仅主机模式,nat模式,桥接模式并获取ip地址使用 ...

  5. centos7修改ip地址自动获取_南京课工场IT培训:如何搭建DHCP服务器及自动获取IP地址及相关操作...

    DHCP服务相关理论知识 DHCP服务分为以下三点, IP地址(例:192.168.1.0) 子网掩码(例:255.255.255.0) 网关 DHCP服务的好处: 减少管理员的工作量 避免输入错误的 ...

  6. 如何设置CentOS 7开机自动获取IP地址详解

    本例中以CentOS 7举例说明如何设置Linux开机自动获取IP地址和设置固定IP地址. 自动获取动态IP地址 1.输入"ip addr"并按回车键确定,发现无法获取IP(Cen ...

  7. kali linux查询自己的ip,Kali Linux常用服务配置教程获取IP地址

    Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...

  8. DHCP自动获取ip地址

    文章目录 前言 一:DHCP概述 1.1:DHCP产生的背景: 1.2:DHCP应用场景: 1.3:DHCP报文类型: 1.4:DHCP工作原理: 二:实验环境 2.1: 华为ensp软件 2.2: ...

  9. 计算机自动配置的ip地址,电脑自动获取IP地址的设置方法(图文)

    在我们使用电脑的过程中,有时候需要根据网络的需求将电脑IP地址设置为自动获取,对网络知识不太了解的朋友遇到此类问题可能不知道怎么去设置,在此小编总结了有关电脑设置自动获取IP地址的相关方法,感兴趣的朋 ...

最新文章

  1. aspx后缀映射成html
  2. 父窗口控制子窗口的行为-打开,关闭,重定位,回复
  3. 令人绝望的第五周作业
  4. hdu-1114 Piggy-Bank
  5. 苹果笔记本macbook pro如何安装python_在Mac上兼容安装Python3并保留原先的Python2.7
  6. 修正的判定条件覆盖例题_硬核:嵌入式代码覆盖率统计方法和经验
  7. 一加nfc门禁卡录入_Card Emulator(NFC卡模拟):一加5NFC模拟门禁卡|饭卡|电梯卡 工卡 借书卡...
  8. 对于如何彻底的卸载和删除Windows service,有如下方法
  9. 第十一章.软件工程(上)
  10. 秃友进销存标准版内存注册机 Cracked.By.HackWm.
  11. 抖音开放平台开发记录
  12. 袖珍磁带的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. 105道Java面试题
  14. JMeter递增加压
  15. python实现图书管理系统(完善版)
  16. 【DeepLearning笔记】python规范书写
  17. 升级产品思维,三年内让自己的收入翻十倍
  18. 读书笔记 如何高效学习
  19. 计算方法(二):n次多项式插值
  20. CentOS 如何更改SSH端口的方法

热门文章

  1. Android system server之PackageManagerService详细分析
  2. 【arduino】玩CyberPi童芯派之真点灯,点亮板载RGB灯,GPIO扩展芯片AW9523B驱动
  3. 计算机专业好的211大学6,计算机专业好的985大学有哪些?附985211计算机大学名单排名...
  4. JavaScript五十问——对比来说CSS的Grid与FlexBox(下篇)
  5. linux下利用shell脚本和mysqldump热备份和恢复mysql
  6. SAPPHIRE NOW阿里云 - 国内传播
  7. 解决 Android ping IPv6 地址显示 network is unreachable 的问题
  8. php require_once
  9. ARM WFI和WFE指令
  10. 如何使用jlink从flash中读取数据保存为bin文件到本地