wifi下获取ip和mac地址
- 格式:pdf
- 大小:76.38 KB
- 文档页数:2
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等)获取的数据不正确。
获取设备信息——获取客户端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系统中的网络和WiFi设置在Mac系统中,网络和WiFi设置是非常重要的一项功能。
正确配置和管理网络设置可以确保您的设备能够与外部世界连接并正常运行。
本文将介绍Mac系统中网络和WiFi设置的相关内容,以帮助读者更好地了解和使用。
一、网络设置在Mac系统中,您可以通过以下步骤来配置网络设置:1. 点击屏幕顶部的苹果图标,然后选择“系统偏好设置”。
2. 在系统偏好设置窗口中,点击“网络”图标。
在“网络”窗口中,您可以看到当前连接的网络接口(如Wi-Fi、以太网等),以及其他可用的网络接口。
您可以选择所需的网络接口,并对其进行设置。
1.1 Wi-Fi设置对于Wi-Fi网络设置,您可以按照以下步骤进行:1. 在“网络”窗口中,选择“Wi-Fi”选项卡。
2. 在可用的Wi-Fi网络列表中,选择您要连接的网络,并点击“连接”按钮。
如果您的Wi-Fi网络有密码保护,系统将要求您输入密码。
确保输入正确的密码后,点击“加入”。
1.2 以太网设置对于以太网(有线网络)设置,您可以按照以下步骤进行:1. 在“网络”窗口中,选择“以太网”选项卡。
2. 点击“高级”按钮,进入以太网高级设置。
在以太网高级设置中,您可以设置IPv4和IPv6地址、DNS服务器、代理等。
根据您的网络需求,进行相应的设置。
二、高级网络设置除了基本的网络设置外,Mac系统还提供了一些高级网络设置选项。
2.1 配置IPv4和IPv6地址在“网络”窗口中,选择相关的网络接口(如Wi-Fi或以太网),并点击“高级”按钮。
在“TCP/IP”选项卡中,您可以手动配置IPv4和IPv6地址。
例如,您可以选择使用静态IP地址,或者自动获取地址。
2.2 DNS设置DNS(域名系统)负责将网址解析为IP地址,以便设备能够访问所需的网站或服务。
在“网络”窗口中,选择相关的网络接口,并点击“高级”按钮。
在“DNS”选项卡中,您可以手动配置首选DNS服务器和备用DNS服务器。
如何获取网卡的MAC地址获取网卡的MAC地址是一个常见的需求,在不同的操作系统中,可以使用不同的方法来获取。
下面将分别介绍在Windows、macOS和Linux系统中获取网卡MAC地址的方法。
在Windows系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开「开始菜单」,在栏中输入「命令提示符」并打开命令提示符窗口。
2. 在命令提示符窗口中输入「ipconfig /all」并按下回车键。
3.系统会列出所有的网络适配器信息,包括网卡的物理地址(MAC地址)。
在相应的网络适配器部分,查找「物理地址」或「MAC地址」字段,即可找到对应的MAC地址。
在macOS系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开「应用程序」文件夹,找到「实用工具」文件夹并进入。
2.打开「终端」应用程序。
3. 在终端中输入「ifconfig」并按下回车键。
4. 终端会列出所有的网络适配器信息,包括网卡的物理地址(MAC地址)。
在相应的网络适配器部分,查找「ether」字段,即可找到对应的MAC地址。
在Linux系统中,可以通过以下步骤来获取网卡的MAC地址:1.打开终端应用程序。
2. 输入以下命令并按下回车键:「ifconfig -a」或「ip link」。
3. 终端会列出所有的网络适配器信息,包括网卡的物理地址(MAC 地址)。
在相应的网络适配器部分,查找「ether」字段,即可找到对应的MAC地址。
除了以上的方法,还可以通过编程的方式来获取网卡的MAC地址。
不同编程语言提供了相应的API或库函数来获取网卡信息。
以下是使用Python编程语言获取MAC地址的示例代码:```pythonimport uuiddef get_mac_address(:mac = uuid.getnodemac_str = ':'.join(("%012X" % mac)[i:i+2] for i in range(0, 12, 2))return mac_strmac_address = get_mac_addressprint(mac_address)```这段代码使用了Python的uuid库中的getnode函数来获取网卡的MAC地址。
电脑IP地址及MAC地址查询方法对于一台联网的电脑,必然会拥有IP地址和MAC地址。
IP地址是由通信运营商(联通、电信等)确定的,可能是在我们申请联网时分配的静态的IP地址,也可能是在每次联网时通过运营商的服务器动态获取IP地址。
MAC地址是固定在电脑网卡内部的地址,对于一台电脑是唯一和不变的。
Windows系列的电脑查询IP及MAC地址的方法:
点击左下角的“开始”菜单,点击“运行”,打开“运行”对话框(或直接在键盘同时按下Windows键和R键打开“运行”对话框)如下图:
在“运行”对话框中,输入“cmd”并点击“确定”键,打开一个黑窗口,如下图所示:
在此窗口中用键盘输入命令“ipconfig /all”并按下键盘上的回车键(Enter键),将显示如图所示的结果:
在上图中,IP Address所对应的行即为IP地址,是用小数点分隔开的4组数字;Physical Address所对应的行即为MAC地址,是12位数字和字母组合。
如何查看计算机的MAC地址MAC地址(Media Access Control Address)是用于网络设备识别和通信的唯一地址。
每个网络接口设备都有一个独特的MAC地址,它由六个十六进制数(00-FF)组成,通常以冒号(:)或短划线(-)分隔。
在计算机系统中,有几种方法可以查看MAC地址。
下面将介绍不同操作系统中的方法。
Windows系统中查看MAC地址的方法:1. 使用命令提示符:按下Win + R,输入cmd并按下Enter键,打开命令提示符窗口。
在命令提示符中输入“ipconfig /all”,然后按下Enter键。
在输出结果中,查找“以太网适配器”或“无线局域网适配器”部分,找到对应的接口名称,紧随其后的就是对应的MAC地址。
2.在网卡属性中查看:右键单击任务栏上的网络连接图标,选择“打开网络和共享中心”。
在新窗口中,点击当前网络连接名称的链接。
在弹出的对话框中,点击“详细信息”按钮,即可在“物理地址”一栏查看MAC地址。
3. 使用设备管理器:按下Win + X,选择“设备管理器”。
展开“网络适配器”节点,找到你想查看MAC地址的网络接口设备,右键单击,选择“属性”。
在“属性”窗口中,切换到“高级”选项卡,在“网络地址”或““Locally Administered Address”一栏可以看到MAC地址。
MacOS系统中查看MAC地址的方法:1.通过系统偏好设置:点击屏幕左上角的苹果图标,选择“系统偏好设置”,然后点击“网络”。
选择想要查看MAC地址的网络接口(例如Wi-Fi或以太网),在右侧的信息栏中可以看到“硬件地址”或“MAC地址”。
2. 使用终端命令:点击“Launchpad”,并打开“终端”。
在终端中输入“ifconfig”,按下Enter键。
在输出结果中,找到你要查看的网络接口(例如en0或en1),在该行中可以找到MAC地址。
Linux系统中查看MAC地址的方法:1. 通过ifconfig命令:打开终端,输入“ifconfig”,按下Enter 键。
1、获取本机IP和MAC地址的方法:
方法一:
右击桌面的【网上邻居】-选择【属性】,双击【本地连接】,单击【支持】-【详细信息】,在窗口中的【实际地址】后的数据XX-XX-XX- XX-XX-XX 就是本机的MAC地址
方法二:
开始—>运行->cmd然后单击“确定”按钮,在弹出的窗口中输入“ipconfig/all”。
得到如下图所示:查询出来的MAC地址为12位数字或字母组合,如“00-16-96-12-01-A8”
2、计算机名的查询及更改方法
右击桌面上的[我的电脑]—[属性]—[计算机名]—[更改],如果是个人使用的计算机请在计算机名中输入部门名称+用户名(用户名可用中文或拼音字母,推荐使用中文),如网管覃志伟,最后按[确定],重启计算机以使它生效。
3、设置IP地址:
1、右击桌面的“网上邻居”-选择“属性”,在弹出窗口中,点中“本地连接”
后点右键,再点击“属性(R)”如下图
2、在“本地连接属性”窗口中选中“Internet协议(TCP/IP)”之后点击“属性”,如图3;D.在弹出窗口中输入你开户后从网络中心获得的IP地址、子网掩码、默认网关以及首选 DNS服务器和备用DNS服务器,如图4。
3、设置完成之后点击“确定”来完成你的设置。
而且最好在设置完成后重起计算机。
4、win7及以上版本点击右下角图标选打开网络和共享中心,接下来步骤同上。
macbook查看局域网ip大家都知道windows下怎么查看局域网的ip,那你们知道macbook如何查看局域网的ip吗?下面是店铺为你整理相关的内容,希望大家喜欢!查询局域网内全部电脑IP和mac地址操作方法01查看自己电脑的IP、MAC等信息。
点击右下角无线网络链接图标,点击打开网络和共享中心。
02单击你要查看的网络并在弹出的对话框中点击详细信息。
03在弹出的对话框中我们就可以看到自己电脑的IP和MAC物理地址了。
04点击开始,在附件中找到并打开记事本。
05在里面输入以下查询程序并将记事本文件保存为.bat格式文件,即批处理文件。
COLOR 0ACLS@ECHO OffTitle 查询局域网内在线电脑IP:send@ECHO off&setlocal enabledelayedexpansionECHO 正在获取本机的IP地址,请稍等...for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (set "IP=%%i"set IP=!IP:~1,-1!ECHO 本机IP为:!IP!goto :next):nextfor /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do set range=%%i.%%j.%%kECHO.&ECHO 正在获取本网段内的其它在线计算机名,请稍等...ECHO 本网段【%range%.*】内的计算机有:for /f "delims=" %%i in ('net view') do (set "var=%%i"::查询在线计算机名称if "!var:~0,2!"=="\" (set "var=!var:~2!"ECHO !var!ping -n 1 !var!>nul))ECHO.ECHO 正在获取本网段内的其它在线计算机IP,请稍等...for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do ECHO IP: %%i 正在使用ECHO.ECHO 查询完毕,按任意键退出...pause>nul06双击刚刚保存的文件,即可看到目前局域网内正在使用电脑的IP。
C#获取局域网IP和MAC地址C# 获取局域网IP和MAC地址C#遍历局域网的几种方法及比较,扫描局域网IP列表的几种方法很多软件都有获知局域网在线计算机IP的功能,但是在.net怎么实现呢,有好多方法,下面我给大家介绍几种,供大家参考。
1、微软社区上介绍了使用Active Directory 来遍历局域网利用DirectoryEntry组件来查看网络private void EnumComputers(){using(DirectoryEntry root = new DirectoryEntry("WinNT:")) {foreach(DirectoryEntry domain in root.Children){Console.WriteLine("Domain | WorkGroup: "+/doc/1611194156.html,);foreach(DirectoryEntry computer in domain.Children){Console.WriteLine("Computer:"+/doc/1611194156.html,);}}}}效果评价:速度慢,效率低,还有一个无效结果Computer: Schema 使用的过程中注意虑掉。
2、利用Dns.GetHostByAddress和IPHostEntry遍历局域网private void EnumComputers(){for (int i = 1; i <= 255; i++){string scanIP = "192.168.0." + i.ToString();IPAddress myScanIP = IPAddress.Parse(scanIP);IPHostEntry myScanHost = null;try{myScanHost = Dns.GetHostByAddress(myScanIP);}catch{continue;}if (myScanHost != null){Console.WriteLine(scanIP+"|"+myScanHost.HostName);}}}效果评价:效率低,速度慢,不是一般的慢。
实验二:获取以太网中IP地址与MAC地址的对应关系2.1 实验目的熟悉ARP的帧结构以及工作原理,深入了解IP地址和MAC地址的有关概念,掌握WinPcap开发包的实验方法以及自定义构造数据包。
2.2 实验要求要求自行构造arp请求数据帧,用WinPcap的相关函数实现数据帧的发送,并解析响应的数据帧,获得IP地址与MAC地址的对应关系。
本实验要求通过操作系统提供的命令和WinPcap编程两种方式获取以太网中主机的MAC地址。
2.3 实验原理ARP是地址解析协议,它的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。
所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。
而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。
因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
TCP/IP协议栈维护着一个ARP cache表,在构造网络数据包时,首先从ARP表中找目标IP对应的MAC地址,如果找不到,就发一个ARP request广播包,请求具有该IP地址的主机报告它的MAC地址,当收到目标IP所有者的ARP reply后,更新ARP cache。
ARP cache有老化机制。
互联网通常通过IP地址指定其发送IP数据报的始发地和目的地,根据ARP 协议的规定,将高层的IP地址映射成底层的物理地址,要理解ARP协议的工作过程,下面用一个例子说明,如下图所示:图1:ARP工作过程主机A要和B通信,A要先广播含有自身IP地址与MAC地址映射关系的请求信息包,请求解析B的IP地址与MAC地址的映射关系。