android获取Mac地址和IP地址
获取MAC地址方法

获取MAC地址和ip地址方法
一、获取本机MAC地址和ip地址方法:
方法一:
在桌面右下角找到“两个小电视”的图标(如果右下角没有,就在桌面右击“网上邻居”点属性,找到“本地连接”双击,也会出现本地属性状态窗口)
鼠标指向它右击---点状态
在状态窗口中点击“支持”标签
接着点击“详细信息”标签
实际地址就是MAC地址,其它信息还有ip地址,子网掩码,网关,还有dns服务器地址方法二:
点开始-运行,输入cmd,回车,然后输入:ipconfig(空格)/all 命令,回车,就一目了然的看到了
二、通过网络获取其它电脑MAC地址方法:
方法一:
点开始-运行,输入cmd,回车,然后输入:arp –a命令,回车,就看到局域网内所有电脑的MAC地址。
方法二:
点开始-运行,输入cmd,回车,然后输入:nbtstat -a 10.3.222.12 ,这样就可以查看某台具体机器的MAC地址(我这里举例查看的就是10.3.222.12这台机器的MAC地址)。
三、查看路由器MAC地址:
登录到路由器界面,找到状态,在状态中查看WAN口MAC地址。
大家看清楚,上报表中填写的路由器mac地址是要wan口的mac地址,而不是lan口的。
Android系统设备如何查看WiFi的MAC地址

Android系统设备如何查看WiFi的MAC地址
安卓系统的平板电脑,在设置里面可以查看到Wi-Fi 的MAC 地址。
MAC(Media Access Control,媒体接入控制)地址是指定给接口的唯一编号,通常由接口卡制造商指定。
现在就来看一下吧!
步骤如下:
(1)在主屏幕上轻按“设置”按钮。
或者,按下物理按钮“Menu”,选择“设置”。
(2)在设置的列表下,轻按选择“关于本机”按钮。
(3)然后,轻按“状态消息”按钮。
(4)查看“Wi-Fi MAC 地址”。
在拨号键盘上查询的代码:
*#62209526# 查询WLAN MAC 地址
编者按:安卓系统平板电脑中Wi-Fi 的MAC 地址,对于普通用户,很少能用得着。
只要我们能够通过无线信号,接入Wi-Fi 进行无线连接就好。
其实,Wi-Fi 的MAC 地址就是该无线设备接口的地址。
如果您对教程内容有新的看法,或者没有找到您想要的教程,欢迎拿起手机,开启微信,扫描上面的微信二维码添加“手机世界”为您的微信好友,也可以在微信里搜“www3533com”,或关注新浪官方微博:/waptt私信联系我们。
获取设备信息——获取客户端ip地址和mac地址

获取设备信息——获取客户端ip地址和mac地址1、获取本地IP(有可能是内⽹IP,192.168.xxx.xxx)/*** 获取本地IP** @return*/public static String getLocalIpAddress() {try {Enumeration<networkinterface> en = NetworkInterface.getNetworkInterfaces();while (en.hasMoreElements()) {NetworkInterface ni = en.nextElement();Enumeration<inetaddress> enIp = ni.getInetAddresses();while (enIp.hasMoreElements()) {InetAddress inet = enIp.nextElement();if (!inet.isLoopbackAddress()&& (inet instanceof Inet4Address)) {return inet.getHostAddress().toString();}}}} catch (SocketException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "0";}</inetaddress></networkinterface>2.获取⽹络ip,⽐上述⽅法更加精确,但是要异步执⾏。
public class GetLocalHostIP implements Callable<String>{private GetLocalHostIP(){super();}public static String getIP(){ExecutorService executorService = Executors.newCachedThreadPool();Future<String> localIP = executorService.submit(new GetLocalHostIP());String ip = null;try {ip = localIP.get();}catch (InterruptedException e){e.printStackTrace();}catch (ExecutionException e){e.printStackTrace();}if(ip == null || ip.startsWith("192.168")){return "10.142.92.242";}else{return ip;}}@Overridepublic String call() throws Exception {URL infoUrl = null;String ipLine = "";try {infoUrl = new URL("");BufferedReader in = new BufferedReader(new InputStreamReader(infoUrl.openStream()));ipLine = in.readLine();} catch (Exception e) {try {infoUrl = new URL("/");BufferedReader in = new BufferedReader(new InputStreamReader(infoUrl.openStream()));ipLine = in.readLine();} catch (Exception e2) {e2.printStackTrace();}}return ipLine;}}上述⽅法可以获取ip,但是获取速度较慢,对⽹速要求较⾼。
手机Mac地址查看与IP地址设置 课件

总结一下
手机如何使用学校Wifi? 1. 2. 3.
把你的手机Mac地址交给学校; 知道你的手机IP地址等参数,并设置正确; 只要设置一次IP地址,即可长久使用学校Wifi 。 (等会老师们会后即可到一号楼测试) 不影响你在校外用其他的 wifi ,以前怎么用, 以后也怎么用。
4.
不好意思,布置点作业
手机Mac地址的查看与 IP地址的设置
C
01 02
目录
O N T E N TS
学校正什么?
1、完善无线设备的建设
目前手机 WiFi 信号已覆盖一号楼,接
下来完善其他楼层
Wifi名称:88
Wifi密码:88
2、给每一位老师分配一个手机IP地址
老师们在手机里查看本机Mac地址后,截图,
通过微信群, qq 群、人人通等方式或抄小 纸条给科组长。
科组长收集齐,写到表格里,会后交监控
室。
谢谢支持!
预祝大家新年吉祥如意!
我们的手机就可以在学校无线上网了。
Ps. 目前手机 WiFi 信号已覆盖一号楼, 接下来继续完善其他楼层.
2
老师们需要做什么
1、查看本手机Mac地址(重点)
安卓系统手机查看步骤:点击【设置】->
【关于手机 / 设备】->【状态 / 信息】查看 WLAN MAC地址(例如58:44:98:bf: ee:6d)。 苹果系统手机查看步骤:点击【设置】-> 【通用】->【关于本机】查看无线局域网 地址(例如 60 : 44 : 98 : bf : ee : 6d )。
已经分配好,详细表格见科组长处,
3、收集老师手机的Mac地址(物理地址)
需要大家查看自己手机里的Mac地址;然后 把数据上交给学校。
JAVA如何获取客户端IP地址和MAC地址

JAVA如何获取客户端IP地址和MAC地址在Java中获取客户端IP地址和MAC地址需要使用Java的网络编程API,具体步骤如下:1.获取客户端IP地址获取客户端IP地址有多种方法,下面介绍两种常用的方法。
方法1:使用`InetAddress`类的`getLocalHost`方法```javaInetAddress localIp = InetAddress.getLocalHost(;String ip = localIp.getHostAddress(;System.out.println("客户端的IP地址是:" + ip);```方法2:使用`HttpServletRequest`类的`getRemoteAddr`方法```javaString ip = request.getRemoteAddr(;System.out.println("客户端的IP地址是:" + ip);```获取客户端MAC地址需要通过运行操作系统的命令来获取,下面介绍一种通用的方法。
方法:使用`InetAddress`类的`getByName`方法和`NetworkInterface`类的`getHardwareAddress`方法```javaInetAddress localHost = InetAddress.getByName("localhost");NetworkInterface networkInterface =NetworkInterface.getByInetAddress(localHost);byte[] mac = networkInterface.getHardwareAddress(;// 将mac地址转换成字符串形式StringBuilder sb = new StringBuilder(;for (int i = 0; i < mac.length; i++)sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));String macAddress = sb.toString(;System.out.println("客户端的MAC地址是:" + macAddress);```需要注意的是,获取MAC地址的方法在不同的操作系统上可能有所不同,在Linux、Windows等操作系统上应该是可行的,但在部分其他操作系统上可能无法获取MAC地址。
android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序

android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序在本机上启动两个模拟器,本机(PC)和模拟器的信息如下:大家可以看到,两个模拟器的IP地址都是完全一样的,所以要实现两个模拟器之间的通信,使用模拟器的IP地址是办不到的。
获取模拟器名称:>adb devicesList of devices attachedemulator-5554 deviceemulator-5556 device模拟器提供了一个特殊的IP,此IP的地址为10.0.2.2,此IP地址可以说等同于PC本机的IP地址127.0.0.1 。
所以,通过此特殊IP地址,实现PC本机与模拟器的通信是没有问题。
【PC-SERVER / 模拟器-CLIENT】目的:通过7100端口跟服务器进行通信。
实施方法比较简单,直接按照下面的方法就可以了。
方法1:PC-SERVER:ServerSocket server = new ServerSocket(7100);模拟器-CLIENT:Socket socket = new Socket("192.168.1.3", 7100);方法2:PC-SERVER:ServerSocket server = new ServerSocket(7100);模拟器-CLIENT:Socket socket = new Socket("10.0.2.2", 7100);【模拟器-SERVER / PC-CLIENT】目的:连接到服务器的7100端口。
实施操作稍微复杂一些,不能按照前面的方法来进行。
要达到此目的,先要进行端口映射。
把本机端口TCP/6100映射到模拟器TCP/7100端口(UDP也是一样)。
>adb –s emulator-5554 forward tcp:6100 tcp:7100端口映射成功后,再进行下面的实验。
查看IP和MAC地址的命令

这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说“初步判断”是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。
(小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)
三,netstat
这是一个用来查看网络状态的命令,操作简便功能强大。
-a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息,如图4。
58. devmgmt.msc--- 设备管理器
59. dfrg.msc-------磁盘碎片整理程序
60. diskmgmt.msc---磁盘管理实用程序
61. dcomcnfg-------打开系统组件服务
62. ddeshare-------打开DDE共享设置
63. dvdplay--------DVD播放器
40. wmimgmt.msc----打开windows管理体系结构(WMI)
41. wupdmgr--------windows更新程序
42. wscript--------windows脚本宿主设置
43. write----------写字板
44. winmsd---------系统信息
45. wiaacmgr-------扫描仪和照相机向导
10. notepad--------打开记事本
11. cleanmgr-------垃圾整理
1---开始信使服务
13. compmgmt.msc---计算机管理
14. net stop messenger-----停止信使服务
Android获得设备状态信息、Mac地址、IP地址的方法

Android获得设备状态信息、Mac地址、IP地址的⽅法前⾔在APP开发时,经常会遇到要获取⼿机状态信息的场景,像升级时获取版本号,像发⽣异常时要收集⼿机信息等等。
有些软件还要根据Mac地址来判定当前⽤户以前是否登录过。
下⾯将⼀⼀介绍获取这些⼿机状态信息的⽅法。
1 通过build获取⼿机硬件信息运⽤反射获取Build信息,然后从build中得到对应字段的值。
这种情况适⽤于获取所有的build信息。
或者直接调⽤Build类直接拿⾥⾯的字段名,如:android.os.Build.MODEL; // ⼿机型号。
这是为了获取单独某个⼿机信息的⽅法,直接调⽤Build的字段即可拿到对应信息,简单快捷。
别忘了加权限<uses-permission android:name="android.permission.READ_PHONE_STATE"/>下⾯是Build类的字段所对应的信息String BOARD The name of the underlying board, like "goldfish".基板名String BOOTLOADER The system bootloader version number.String BRAND The brand (e.g., carrier) the software is customized for, if any.品牌名String CPU_ABI The name of the instruction set (CPU type + ABI convention) of native code.String CPU_ABI2 The name of the second instruction set (CPU type + ABI convention) of native code.String DEVICE The name of the industrial design.品牌型号名,如⼩⽶4对应cancroString DISPLAY A build ID string meant for displaying to the userString FINGERPRINT A string that uniquely identifies this build.包含制造商,设备名,系统版本等诸多信息String HARDWARE The name of the hardware (from the kernel command line or /proc).String HOSTString ID Either a changelist number, or a label like "M4-rc20".String MANUFACTURER The manufacturer of the product/hardware.String MODEL The end-user-visible name for the end product.String PRODUCT The name of the overall product.String RADIO The radio firmware version number.String SERIAL A hardware serial number, if available.String TAGS Comma-separated tags describing the build, like "unsigned,debug".long TIME 当前时间,毫秒值String TYPE The type of build, like "user" or "eng".String UNKNOWN Value used for when a build property is unknown.String USER//运⽤反射得到build类⾥的字段Field[] fields = Build.class.getDeclaredFields();//遍历字段名数组for (Field field : fields) {try {//将字段都设为public可获取field.setAccessible(true);//filed.get(null)得到的即是设备信息haspmap.put(field.getName(), field.get(null).toString());Log.d("CrashHandler", field.getName() + " : " + field.get(null));} catch (Exception e) {}}下⾯是⼩⽶4对应的设备信息D/CrashHandler: BOARD : MSM8974D/CrashHandler: BOOTLOADER : unknownD/CrashHandler: BRAND : XiaomiD/CrashHandler: CPU_ABI : armeabi-v7aD/CrashHandler: CPU_ABI2 : armeabiD/CrashHandler: DEVICE : cancroD/CrashHandler: DISPLAY : MMB29MD/CrashHandler: FINGERPRINT : Xiaomi/cancro_wc_lte/cancro:6.0.1/MMB29M/V8.1.3.0.MXDCNDI:user/release-keysD/CrashHandler: HARDWARE : qcomD/CrashHandler: HOST : c3-miui-ota-bd43D/CrashHandler: ID : MMB29MD/CrashHandler: IS_DEBUGGABLE : falseD/CrashHandler: MANUFACTURER : XiaomiD/CrashHandler: MODEL : MI 4LTED/CrashHandler: PRODUCT : cancro_wc_lteD/CrashHandler: RADIO : unknown//设备的序列号码-SERIALD/CrashHandler: SERIAL : abcdefghD/CrashHandler: SUPPORTED_32_BIT_ABIS : [ng.String;@76b6d2bD/CrashHandler: SUPPORTED_64_BIT_ABIS : [ng.String;@e42c588D/CrashHandler: SUPPORTED_ABIS : [ng.String;@9cdbb21D/CrashHandler: TAG : BuildD/CrashHandler: TAGS : release-keysD/CrashHandler: TIME : 1478606340000D/CrashHandler: TYPE : userD/CrashHandler: UNKNOWN : unknownD/CrashHandler: USER : builder2.通过getSystemService()来获取Ip地址Context.getSystemService()这个⽅法是⾮常实⽤的⽅法,只须在参数⾥输⼊⼀个String 字符串常量就可得到对应的服务管理⽅法,可以⽤来获取绝⼤部分的系统信息,各个常量对应的含义如下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
android获取Mac地址和IP地址获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac 地址,这种方法也是网络上使用的最多的方法)//根据Wifi信息获取本地Macpublic static String getLocalMacAddressFromWifiInfo(Context context){WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();return info.getMacAddress();}(2)调用Linux的busybox,通过linux命令来获取//根据busybox获取本地Macpublic static String getLocalMacAddressFromBusybox(){ String result = "";String Mac = "";result = callCmd("busybox ifconfig","HWaddr");//如果返回的result == null,则说明网络不可取if(result==null){return "网络出错,请检查网络";}//对该行数据进行解析//例如:eth0 Link encap:Ethernet HWaddr00:16:E8:3E:DF:67if(result.length()>0 && result.contains("HWaddr")==true){ Mac = result.substring(result.indexOf("HWaddr")+6, result.length()-1);Log.i("test","Mac:"+Mac+" Mac.length: "+Mac.length());/*if(Mac.length()>1){Mac = Mac.replaceAll(" ", "");result = "";String[] tmp = Mac.split(":");for(int i = 0;i<tmp.length;++i){result +=tmp[i];}}*/result = Mac;Log.i("test",result+" result.length:"+result.length());}return result;}private static String callCmd(String cmd,String filter) { String result = "";String line = "";try {Process proc = Runtime.getRuntime().exec(cmd);InputStreamReader is = newInputStreamReader(proc.getInputStream());BufferedReader br = new BufferedReader (is);//执行命令cmd,只取结果中含有filter的这一行while ((line = br.readLine ()) != null &&line.contains(filter)== false) {//result += line;Log.i("test","line: "+line);}result = line;Log.i("test","result: "+result);}catch(Exception e) {e.printStackTrace();}return result;}(3)调用android 的API:NetworkInterface. getHardwareAddress ()该API的level为9,只有android 2.3以上才有该接口//根据IP获取本地Macpublic static String getLocalMacAddressFromIp(Context context) {String mac_s= "";try {byte[] mac;NetworkInterfacene=NetworkInterface.getByInetAddress(InetAddress.getByName(getLoca lIpAddress()));mac = ne.getHardwareAddress();mac_s = byte2hex(mac);} catch (Exception e) {e.printStackTrace();}return mac_s;}public static String byte2hex(byte[] b) {StringBuffer hs = new StringBuffer(b.length);String stmp = "";int len = b.length;for (int n = 0; n < len; n++) {stmp = Integer.toHexString(b[n] & 0xFF);if (stmp.length() == 1)hs = hs.append("0").append(stmp);else {hs = hs.append(stmp);}}return String.valueOf(hs);}其中getLocalIpAddress是获取本地IP地址//获取本地IPpublic static 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()) {returninetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e("WifiPreference IpAddress",ex.toString());}return null;}获取本地IP地址在网络上搜索一下,一般就有如下的代码://获取本地IPpublic static 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()) {returninetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e("WifiPreference IpAddress",ex.toString());}return null;}但是经过测试该方法在android2.3, 2.2...较老版本有效,但是在android较新版本(例如4.0等)获取的数据不正确。
获取到了类似fe80::b607:f9ff:fee5:487e..这样的IP地址。
经过一番努力,终于找出原因。
上面的IP地址是IPV6的地址形式(大概这个意思,具体没有太深入研究)。
解决方法是,在上面代码中的最内层的for循环的if语句中对inetAddress进行格式判断,只有其是IPV4格式地址时,才返回值。
修改后代码如下:(下面的方法也是网络上的方法,没有结果验证)public String getLocalIpAddress() {try {String ipv4;List nilist =Collections.list(NetworkInterface.getNetworkInterfaces());for (NetworkInterface ni: nilist){List ialist =Collections.list(ni.getInetAddresses());for (InetAddress address: ialist){if (!address.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ipv4=address.getHostAddress())) {return ipv4;}}}} catch (SocketException ex) {Log.e(LOG_TAG, ex.toString());}return null;}网络上还有一种方法来获取本地IP地址(不过是在wifi状态下)通过WifiManager,DhcpInfo获取IP地址以及网关等信息(在android4.0等版本也适用)package com.jason.demo.androidip;import android.content.Context;import .DhcpInfo;import .wifi.WifiInfo;import .wifi.WifiManager;import android.text.format.Formatter;public class IPAddress {public String getIPAddress(Context ctx){WifiManager wifi_service = (WifiManager)ctx.getSystemService(Context.WIFI_SERVICE);DhcpInfo dhcpInfo = wifi_service.getDhcpInfo();WifiInfo wifiinfo = wifi_service.getConnectionInfo();System.out.println("Wifiinfo----->"+wifiinfo.getIpAddress());System.out.println("DHCP infogateway----->"+Formatter.formatIpAddress(dhcpInfo.gateway));System.out.println("DHCP infonetmask----->"+Formatter.formatIpAddress(mask));//DhcpInfo中的ipAddress是一个int型的变量,通过Formatter 将其转化为字符串IP地址return Formatter.formatIpAddress(dhcpInfo.ipAddress);}}加入permission<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>不过我自己在做项目过程中,用另外一种方法也解决了android4.0获取IP错误的问题://获取本地IPpublic static 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()&& !inetAddress.isLinkLocalAddress()) {returninetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e("WifiPreference IpAddress",ex.toString());}return null;}参考博文:/Amandaliu/archive/2011/11/06/2238177.html Android获取Mac地址/ccf0703/article/details/7451274解决安卓4.0获取本地IP地址问题。