搜档网
当前位置:搜档网 › android获取Mac地址和IP地址

android获取Mac地址和IP地址

android获取Mac地址和IP地址
android获取Mac地址和IP地址

android获取Mac地址和IP地址

获取Mac地址实际项目中测试了如下几种方法:

(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac 地址,这种方法也是网络上使用的最多的方法)

//根据Wifi信息获取本地Mac

public 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获取本地Mac

public static String getLocalMacAddressFromBusybox(){ String result = "";

String Mac = "";

result = callCmd("busybox ifconfig","HWaddr");

//如果返回的result == null,则说明网络不可取

if(result==null){

return "网络出错,请检查网络";

}

//对该行数据进行解析

//例如:eth0 Link encap:Ethernet HWaddr

00:16:E8:3E:DF:67

if(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

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 = new

InputStreamReader(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获取本地Mac

public static String getLocalMacAddressFromIp(Context context) {

String mac_s= "";

try {

byte[] mac;

NetworkInterface

ne=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地址

//获取本地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 ex) {

Log.e("WifiPreference IpAddress",

ex.toString());

}

return null;

}

获取本地IP地址

在网络上搜索一下,一般就有如下的代码:

//获取本地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 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 https://www.sodocs.net/doc/0b6918831.html,.DhcpInfo;

import https://www.sodocs.net/doc/0b6918831.html,.wifi.WifiInfo;

import https://www.sodocs.net/doc/0b6918831.html,.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("Wifi

info----->"+wifiinfo.getIpAddress());

System.out.println("DHCP info

gateway----->"+Formatter.formatIpAddress(dhcpInfo.gateway));

System.out.println("DHCP info

netmask----->"+Formatter.formatIpAddress(https://www.sodocs.net/doc/0b6918831.html,mask));

//DhcpInfo中的ipAddress是一个int型的变量,通过Formatter 将其转化为字符串IP地址

return Formatter.formatIpAddress(dhcpInfo.ipAddress);

}

}

加入permission

android:name="android.permission.ACCESS_WIFI_STATE"/>

不过我自己在做项目过程中,用另外一种方法也解决了android4.0获取IP错误的问题:

//获取本地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()

&& !inetAddress.isLinkLocalAddress()) {

return

inetAddress.getHostAddress().toString();

}

}

}

} catch (SocketException ex) {

Log.e("WifiPreference IpAddress",

ex.toString());

}

return null;

}

参考博文:

https://www.sodocs.net/doc/0b6918831.html,/Amandaliu/archive/2011/11/06/2238177.html Android获取Mac地址

https://www.sodocs.net/doc/0b6918831.html,/ccf0703/article/details/7451274

解决安卓4.0获取本地IP地址问题。

https://www.sodocs.net/doc/0b6918831.html,/garybook/article/details/7874456

通过WifiManager,DhcpInfo获取android IP地址及网关等信息(两种方式)

https://www.sodocs.net/doc/0b6918831.html,/lizzydarcymsp/article/details/5623302

利用InetAddress类确定特殊IP地址(isLinkLocalAddress,isLoopbackAddress等)

android获取Mac地址和IP地址

android获取Mac地址和IP地址 获取Mac地址实际项目中测试了如下几种方法: (1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac 地址,这种方法也是网络上使用的最多的方法) //根据Wifi信息获取本地Mac public 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获取本地Mac public static String getLocalMacAddressFromBusybox(){ String result = ""; String Mac = ""; result = callCmd("busybox ifconfig","HWaddr"); //如果返回的result == null,则说明网络不可取 if(result==null){ return "网络出错,请检查网络"; } //对该行数据进行解析 //例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67 if(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(" ", "");

如何绑定自己的IP地址和Mac地址

如何绑定自己的IP地址和Mac地址,如何解除绑定 分享| 2006-07-06 16:16Iguo_1225|浏览92187 次 我说的是用自己的PC绑定,我记得只需要几条命令。 还有如何解除绑定。 因为班级里只有我一台计算机可以上网,网管在服务器上记录了我的MAC地址和IP地址,可是学生只要把自己的MAC地址改成和我的一样,他们就可以上网了。 我想把我的MAC绑定在网卡上,使别人无法使用。如何实现? 2006-07-20 19:07 提问者采纳 MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。I P地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一的。 MAC地址的作用 IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类浦?Γ??玫乩斫釳AC地址的作用。 无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解

通过客户端ip获取mac地址

public class MacUtils { /** * 通过ip获取mac地址 * @param ipAddress 客户端ip * @return mac地址 */ public static String getMACAddressByIp(String ipAddress) { String str = "", macAddress = ""; try { Process pp = Runtime.getRuntime().exec("arp -a " + ipAddress); InputStreamReader ir = new InputStreamReader(pp.getInputStream(), "gbk"); BufferedReader br = new BufferedReader(ir); while ((str = br.readLine()) != null) { if (str.indexOf(ipAddress) > 1) { str = str.trim(); macAddress = str.substring(str.indexOf(" "), str.length()); macAddress = macAddress.trim(); macAddress = macAddress.substring(0,17); break; } } pp.destroy(); br.close(); ir.close(); } catch (Exception ex) { return "Can't Get MAC Address!"; }

手动修改IP和MAC地址

这就给这部分被限制上网的朋友们提出了一个难题:被限制不能上网了?那还有没有办法再突破封锁继续上网呢?要再突破封锁也是可以实现的,这里我说一下IP与MAC地址绑定并被锁定限制上网的方法如何巧妙化解。 化解方法:手动修改IP和MAC地址。 既然IP与MAC地址绑定,修改MAC肯定也要修改IP。 一般MAC地址在网卡中是固定的,当然也有网络高手会想办法去修改自己的MAC地址。修改自己的MAC地址有两种方法,一种是硬件修改,另外一种是软件修改。硬件的方法就是直接对网卡进行操作,修改保存在网卡的EPROM 里面的MAC地址,通过网卡生产厂家提供的修改程序可以更改存储器里的地址。那么什么叫做EPROM呢?EPROM是电子学中一种存储器的专业术语,它是可擦写的,也就是说一张白纸你用钢笔写了一遍以后就不能再用橡皮擦去了,而EPROM这张白纸用铅笔写后可以再擦去,可以反复改变其中数据的存储器。当然软件修改的方法就相对来说要简单得多了,在Windows中,网卡的MAC保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以改变MAC。 Windows 2000/XP中的修改:同样打开注册表编辑器: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E 970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为“NetworkAddress”,值为要设置的MAC地址,例如:000102030405 完成上述操作后重启就好了。一般网卡发出的包的源MAC地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到MAC地址,每次发送的时候都用这个MAC作为源MAC而已,而注册表中的MAC地址是在Windows安装的时候从网卡中读入的,只要你的操作系统不重新安装应该没有问题. 另一种修改MAC的方法:打开本地连接的属性,在“常规”里面,有一个“配置”,然后点“高级”,选“network address”,选中“值”,在里面填写数据。这个数据你最好到开始-运行-cmd,输入IPCONFIG /ALL 察看,如:00-1D-7D-77-45-83,找到你的那个值,去掉-,修改最后1个数,填进去就行了。 修改IP地址的方法:开始-运行-cmd,输入IPCONFIG /ALL 察看,将里面的信息纪录下来,到本地连接的属性里面-Internet协议TCP/IP-属性,点使用下面IP地址,然后把你纪录的写进去就行了,但也要把如192.168.1.3,后面的改一位数字,比如改成192.168.1.4,网关就不要改了。

Win7通过注册表修改MAC地址方法

通过注册表修改MAC地址方法 第1步打开注册表编辑器 方法:1、单击电脑屏幕左下角“开始”按钮,找到”附件”,在”附件”中找到“运行”,键入“regedit”后回车,便可以调出注册表编辑器。 2、或者同时按Windows键和R键(WIN+R)打开运行对话框,然后键入“regedit”后回车,便可以调出注册表编辑器。“Windows键”一般情况就在Alt键的左边,上 面印有Windows图标的一个按键。 第2步 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972- E325-11CE- BFC1-08002BE10318}\0000、0001、0002 等主键下,查找 DriverDesc , 内容为要修改的网卡的描述。 如 Intel的网卡会被描述成“Intel(R) PRO/100+ Management Adapter”,3Com的网卡会被 描述成“3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)”等。 注:上面提到的关于网卡描述的选项出现的位置,和网卡本身以及操作系统有关。不同的网卡可能出现在不同的主键下,而同一网卡用不同版本的操作系统(如OEM版,VOL或者VLK 等)也会出现在不同的位置。而这一步的任务就是找到含有网卡描述的主键。 第3步 选中在第二步找到的主键,在右栏框中添加一个字符串,命名为“Network Address”, 其值设为要改的MAC地址,形式如“000B6AF6F4F9”。注:到这一步,修改网卡物理地址的任务可以说是完成了,有的网卡需要重启以下才能正常的工作。下面的几步是为了以后再修改物理地址方便用的。 第4步 在“第一步选中的主键”\Ndi\params下添加一项名为“NetworkAddress”的主键,此时一 般都会随着在右栏框中产生一个“(默认)”的字符串,将其值设置为最终想要修改的MAC地址,形式如 “000B6AF6F4F9”。如果没有此字符串,读者也可自行添加此字符串。注:此步骤就是为网卡设置一个初始MAC地址。 第5步 在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定“NetworkAddress”主键的描述,其值可自己命名,如“Network Address”,这样在网卡的高 级属性中就会出现“Network Address”选项,就是刚在注册表中加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。

关于IP-MAC地址绑定设置

关于IP-MAC地址绑定的交换机设置 1.方案1——基于端口的MAC地址绑定 思科2950交换机为例,登录进入交换机,输入管理口令进入配置模式,敲入命令: Switch#config terminal #进入配置模式 Switch(config)# Interface fastethernet 0/1 #进入具体端口配置模式 Switch(config-if )#Switchport port-secruity #配置端口安全模式 Switch(config-if )switchport port-security mac-address MAC(主机的MAC地址) #配置该端口要绑定的主机的MAC地址 Switch(config-if )no switchport port-security mac-address MAC(主机的MAC地址) #删除绑定主机的MAC地址 注意: 以上命令设置交换机上某个端口绑定一个具体的MAC地址,这样只有这个主机可以使用网络,如果对该主机的网卡进行了更换或者其他PC机想通过这个端口使用网络都不可用,除非删除或修改该端口上绑定的MAC地址,才能正常使用。 注意: 以上功能适用于思科2950、3550、4500、6500系列交换机 2.方案2——基于MAC地址的扩展访问列表 Switch(config)Mac access-list extended MAC10 #定义一个MAC地址访问控制列表并且命名该列表名为MAC10 Switch(config)permit host 0009.6bc4.d4bf any #定义MAC地址为0009.6bc4.d4bf的主机可以访问任意主机 Switch(config)permit any host 0009.6bc4.d4bf #定义所有主机可以访问MAC地址为0009.6bc4.d4bf的主机 Switch(config-if )interface Fa0/20 #进入配置具体端口的模式 Switch(config-if )mac access-group MAC10 in #在该端口上应用名为MAC10的访问列表(即前面我们定义的访问策略) Switch(config)no mac access-list extended MAC10 #清除名为MAC10的访问列表 此功能与应用一大体相同,但它是基于端口做的MAC地址访问控制列表限制,可以限定特定源MAC地址与目的地址范围。 注意:

修改网卡MAC地址两种方法:简单修改与注册表修改方法

如果您是通过网卡的物理地址进行访问网络的,那么一定会碰到需要修改物理地址的情况。如更换新网卡,网卡的物理地址重复或者让笔记本电脑临时登陆一下网络等情况。更改网卡MAC地址的文章网络中有很多,但大都说的不够详细,下面笔者试着以Windows XP操作系统为例介绍两种网卡MAC地址的修改方法,希望对大家有所帮助。 一,简单的修改方法 读者可以在桌面上的“网上邻居”图标上单击右键,选择“属性”,在弹出的“网络连接”的对话框中,在“本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏框中可以找到“值”这个选项就可以了),然后选中右栏框“值”中的上面一个单选项(非“不存在”),此时便可在右边的框中输入想改的网卡MAC地址,形式如“000B6AF6F4F9”。点击“确定”按钮,修改就完成了。 不过,有一些网卡没有这个选项,不要着急,可以先更新网卡的驱动程序试试,一般情况下,更新驱动之后都会出现这个选项。但是依然有特殊情况,无论怎么修改都没有这个选项,那怎么办呢?接着往下看,下面的方法可以说是万能的! 二,注册表修改方法 第1步,单击“开始”,选中“运行”,键入“regedit”调出注册表。 第2步,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E 325-11CE-BFC1-08002BE10318}\0000、0001、0002 等主键下,查找 DriverDesc ,

MAC地址与IP地址绑定策略的破解

MAC与IP 地址绑定原理 IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC 地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP 地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。 目前,很多单位的内部网络,尤其是学校校园网都采用了MAC地址与IP地址的绑定技术。许多防火墙(硬件防火墙和软件防火墙)为了防止网络内部的IP地址被盗用,也都内置了MAC地址与IP地址的绑定功能。 从表面上看来,绑定MAC地址和IP地址可以防止内部IP地址被盗用,但实际上由于各层协议以及网卡驱动等实现技术,MAC地址与IP地址的绑定存在很大的缺陷,并不能真正防止内部IP地址被盗用。 破解MAC与IP地址绑定策略 2.1 IP地址和MAC地址简介 现行的TCP/IP网络是一个四层协议结构,从下往上依次为链路层、网络层、传输层和应用层。 Ethernet协议是链路层协议,使用的地址是MAC地址。MAC地址是Ethernet网卡在Ethernet中的硬件标志,网卡生产时将其存于网卡的EEPROM中。网卡的MAC地址各不相同,MAC地址可以唯一标志一块网卡。在Ethernet上传输的每个报文都含有发送该报文的网卡的MAC地址。 Ethernet根据Ethernet报文头中的源MAC地址和目的MAC来识别报文的发送端和接 收端。IP协议应用于网络层,使用的地址为IP地址。使用IP协议进行通讯,每个IP报文头中必须含有源IP和目的IP地址,用以标志该IP报文的发送端和接收端。在Ethernet上使用IP协议传输报文时,IP报文作为Ethernet报文的数据。IP地址对于Ethernet交换机或处理器是透明的。用户可以根据实际网络的需要为网卡配置一个或多个IP地址。MAC地址和IP地址之间并不存在一一对应的关系。 MAC地址存储在网卡的EEPROM中并且唯一确定,但网卡驱动在发送Ethernet报文时,并不从EEPROM中读取MAC地址,而是在内存中来建立一块缓存区,Ethernet报文从中读取源MAC地址。而且,用户可以通过操作系统修改实际发送的Ethernet报文中的源MAC 地址。既然MAC地址可以修改,那么MAC地址与IP地址的绑定也就失去了它原有的意义。 2.2 破解方案 下图是破解试验的结构示意图。其内部服务器和外部服务器都提供Web服务,防火墙中实现了MAC地址和IP地址的绑定。报文中的源MAC地址与1P地址对如果无法与防火墙中设置的MAC地址与1P地址对匹配,将无法通过防火墙。主机2和内部服务器都是内

获取局域网IP和MAC地址的方法

取得IP的方法很多,比如"局域网查看工具",我推荐用“局域网花名册”网上随便搜索一下就有了。 取得MAC地址的方法:WIN+R,输入CMD,用"NBTSTAT -A IP地址" 查看。不过,我试过好像这能查看自己的ip和mac,如下 C:\Documents and Settings\hike>nbtstat -A 211.69.244.171 本地连接: Node IpAddress: [211.69.244.171] Scope Id: [] NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------- 9D15D457A66C432<00> UNIQUE Registered 9D15D457A66C432<20> UNIQUE Registered WORKGROUP <00> GROUP Registered MAC Address = 00-E0-4A-01-BE-9C 如果查看别人的会显示: C:\Documents and Settings\hike>nbtstat -A 211.69.244.188 本地连接: Node IpAddress: [211.69.244.171] Scope Id: [] Host not found. 取得自己电脑IP与MAC的方法:WIN+R,输入CMD,用"IPCONFIG /ALL" 查看,还有一个快速查看mac的命令:“getmac”,也挺方便的。 下面是我强烈推荐的查看别人ip和mac的命令: 先用ping,ping通每一台机器,然后用arp -a 可列出所有刚才ping通的机器的网卡号。

VMware下修改Linux MAC地址的方法

VMware下修改Linux MAC地址的方法VMware下修改Linux MAC地址有三种方法。 方法一:直接修改Linux系统里相关rc.local文件MAC值即可。 方法二:修改虚拟机的*.vmx文件,这种方法最值得推荐,因为这样就类似于重新“烧录”了VMware虚拟机的“物理网卡ROM”。 具体操作方法分两种情况: 第一种情况: ethernet0.addressType="static" ethernet0.Address="00:50:56:0A:0B:0C" "static"说明VM的"物理网卡"的MAC是静态设定的,你可以改成一个以005056开头的另外一个MAC即可。改完启动VM时如果问你 SSID的话,选择“KeepAlways”。 第二种情况: ethernet0.addressType="generated" uuid.location="564ddcf1ffaa75ea-f1b9ee0d689c655c" uuid.bios="564ded23138c9691-7c68b2098baabbcc" ethernet0.generatedAddress="00:0c:29:aa:bb:cc" "generated"说明VM的"物理网卡"的MAC是系统随机动态设定的,你可以通过将uuid.bios后六位及 ethernet0.generatedAddress后六位改成你想要改成的以000c29开头的MAC即可。 方法三:修改Linux系统里相关/etc/sysconfig/network-scripts/ifcfg-eth0文件MAC值。

vi/etc/sysconfig/network-scripts/ifcfg-eth0 MACADDR=xx:xx:xx:xx:xx:xx :wq保存退出 reboot 可见在VMware下修改Linux MAC地址也并不是很复杂。 转载请注明:李勇 @ 卡饭学院杀毒软件免费杀毒软件时间:2010-06-27 18:13 卡饭,中国计算机安全软件交流学习第一选择;

关于IP-MAC地址绑定的交换机设置(思科路由器配置)

关于IP-MAC地址绑定的交换机设置(思科路由器配置) 2009年10月27日星期二 15:35 2009-03-01 01:30 注:IP地址与MAC地址的关系: IP地址是根据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,长度4个字节。而 MAC地址却是用网卡的物理地址,保存在网卡的EPROM里面,与硬件有关系,比较难于记忆,长度为6个字节。 虽然在TCP/IP网络中,计算机往往需要设置IP地址后才能通讯,然而,实际上计算机之间的通讯并不是通过IP地址,而是借助于网卡的MAC地址。IP地址只是被用于查询欲通讯的目的计算机的MAC地址。 ARP协议是用来向对方的计算机、网络设备通知自己IP对应的MAC地址的。在计算机的ARJ缓存中包含一个或多个表,用于存储IP地址及其经过解析的以太网MAC地址。一台计算机与另一台IP地址的计算机通讯后,在ARP缓存中会保留相应的MAC地址。所以,下次和同一个IP地址的计算机通讯,将不再查询MAC地址,而是直接引用缓存中的MAC地址。 在交换式网络中,交换机也维护一张MAC地址表,并根据MAC地址,将数据发送至目的计算机。(转载注明出处n et130) 为什么要绑定MAC与IP 地址:IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC 地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。 目前,很多单位的内部网络,都采用了MAC地址与IP地址的绑定技术。下面我们就针对Cisco的交换机介绍一下IP和MAC绑定的设置方案。 在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网卡硬件地址)和IP地址。 1.方案1——基于端口的MAC地址绑定 思科2950交换机为例,登录进入交换机,输入管理口令进入配置模式,敲入命令: Switch#config terminal #进入配置模式 Switch(config)# Interface fastethernet 0/1 #进入具体端口配置模式 Switch(config-if)#Switchport port-secruity #配置端口安全模式 Switch(config-if )switchport port-security mac-address MAC(主机的MAC 地址) #配置该端口要绑定的主机的MAC地址 Switch(config-if )no switchport port-security mac-address MAC(主机的MAC地址) #删除绑定主机的MAC地址

改MAC地址的方法破解MAC地址绑定

改MAC地址的方法破解MAC地址绑定 修改MAC地址的方法 网卡的MAC地址是固化在网上EPROM中的物理地址,是一块网卡的“身份证”,通常为48位。 在平常的应用中,有很多方面与MAC地址相关,如有些软件是和MAC地址绑定的,没有允许的MAC地址,软件就无法运行; 局域网里,管理人员常常将IP与客户机的MAC地址绑定,以方便管理,万一用户的网卡坏掉了,自行更改网卡后必须向管理人员申请更改绑定的MAC地址,这样就比较麻烦。在这种时候,如果我们能够更改一下网卡的MAC地址,那就方便多了。 实际上,修改网卡的MAC地址是很容易的,我们既可以在作系统中通过软件来修改网卡的MAC地址,而实际的网卡MAC地址不变,以达到欺骗软件的目的;也可以用工具直接更改网卡的实际MAC地址。 一、瞒天过海 1.修改注册表 几乎所有的网卡驱动程序都可以被NdisReadNetworkAddress参数调用,以便从注册表中读取一个用户指定的MAC地址。当驱动程序确定这个MAC地址是有效的,就会将这个MAC地址编程入其硬件寄存器中,而忽略网卡固有的MAC地址。我们通过手工修改W indows的注册表就可以达到目的。 在Winodws 98下运行Windows的注册表编辑器,展开“HKEY_LOCAL_MACHINE\System\Current ControlSet\Services\Class\Net”,会看到类似“0000”、“0001”、“0002”的子键。从“0000”子键开始点击,依次查找子键下的“DriverDesc”键的内容,直到找到与我们查找的目标完全相同的网卡注册表信息为止。 当找到正确的网卡后,点击下拉式菜单“编辑/新建/字符串”,串的名称为“Networkaddre ss”,在新建的“Networkaddress”串名称上双击鼠标就可以输入数值了。输入你想指定的新的MAC地址值。新的MAC地址应该是一个12位的十六进制数字或字母,其间没有“-”,类似“0 00000000000”的这样的数值(注意,在Windows 98和Windows 2000/XP中具体键值的位置稍有不同,大家可通过查找功能来寻找)。 在“NetworkAddress”下继续添加一个名为“ParamDesc”的字串值,它将作为“Network Address”项的描述,数值可以取为“MAC Address”。再把它的内容修改为你想设定的内容. 2.修改网卡属性 大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址,笔者的3C OM 3C905B-TX和RTL8139芯片的网卡都可以这样轻松修改。

ip地址和mac地址

ip地址和mac地址 ip地址就是你的机器在网络上面的门牌号码,子网掩码的作用就是告诉网络你的机器是处在哪一个小的子网络中。网关是你的机器通过什么服务器来访问的网络。mac地址是网卡在出厂的时候,制造商给网卡赋予的唯一的一个地址标识ip地址就是你的机器在网络上面的门牌号码,子网掩码的作用就是告诉网络你的机器是处在哪一个小的子网络中。网关是你的机器通过什么服务器来访问的网络。mac地址是网卡在出厂的时候,制造商给网卡赋予的唯一的一个地址标识MAC地址 MAC地址1212 一,MAC(Media Access Control, 介质访问控制)MAC地址是烧录在Network Interface Card(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位是由厂家自己分配.24-47位,叫做组织唯一标志符(oganizationally unique ,是识别LAN(局域网)节点的标识。其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。 也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。 形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。 如何获取本机的MAC? 对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。即可看到MAC地址。 在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址。 修改网卡MAC地址的方法 其实更改网卡MAC地址的功能不论98还是2000,都已经提供了,只是平时大家都没有注意到而以。下面我就说说怎么更改。很简单哦。。。 一,好了,现在先来看看WIN2000。在桌面上网上邻居图标上点右键,选"属性",在出来的"网络和拨号连接"窗口中一般有两个图标,一个是"新建连接"图标,一个是"我的连

修改ip地址和mac地址用命令

WinXP一键更改IP与MAC地址 前一阵子,因为寝室里要不断更换homeshare主机,改IP和MAC成了一项比较麻烦的工序,因此一直想手动编写一个一键更改IP与MAC的批处理文件,查看一些网上方法,发现并不好用。 如,用netsh interface ip命令,该命令介绍如下: ? -显示命令列表 add -向表中添加一个配置项目 delete -从表中删除一个配置项目 dump -显示一个配置脚本 help -显示命令列表 reset -复位tcp/ip 及相关的组件到到干净的状态 set -设置配置信息 show -显示信息 这里我们只用到set命令 如:netsh interface ip set address "本地连接" static 172.30.40.59 255.255.0.0 172.30.3.21 1 某些机器上名称不是本地连接,而是local address一类的,只要替换上述命令中相关内容即可,IP中三项分别对应IP、掩码、网关,最后的“1”是指默认网关的跃点数,一般为“1”。 这样更改IP工作完成。 注:(该方法仅针对固定IP类型,如非固定IP则将netsh一行用以下命令替换) 1.要将指定适配器的静态地址切换为DHCP 地址,键入以下命令:netsh interface ip set address"本地连接" dhcp 2.更改DNS为192.168.0.1:netsh interface ip set DNS "本地连接" static 192.168.0.1 缺点:该方法虽简单易懂,但执行起来速度并不快,需要看使用者电脑配置而定,其主要原因在于更改IP的命令netsh执行较慢。

华为路由器ipmac地址绑定保存配置

1、登录学校路由器:Telnet 学校公网地址(不知道自己的互联网出口地址的可以看一下电脑的网关地址),然后 回车 如:telnet 回车或者Telnet 电脑ip的网关 2、提示你输入路由的用户名和密码,在输入密码的时候是看不到输入的字符的,因为密码设置的为cipher模式。然后敲回车。 3、输入dis arp,查看arp缓存信息 这里记录者目前电脑通过自动获取的IP地址信息。老师们可以将其复制到excel表格里,但是最好能确定mac地址所对应的是哪一台电脑。 4、然后执行system命令,敲回车,进入全局模式会变成[twzx] 5、在全局模式下关闭DHCP ,执行命令undo dhcp enable 回车,下面所有设备将不能自动获取地址,如图 5、在全局模式下输入user-bind static ip-address mac-address xxxx-xxxx-xxxx 敲回车 如下图:对进行绑定(删除绑定在命令前面加入undo) 6、在全局模式下输入:dis dhcp static user-bind all 可查看绑定信息。如图 0001-0001-0001 mac地址的电脑使用。其他mac地址无法使用该IP地址。 8、还有一种方法:使用arp static ,这样也可以做绑定。绑定如图: 以上通过arp绑定的方法需要将局域网内的所有IP与mac进行,例如 一个局域网中有4台电脑,通过arp static绑定了4个电脑对应的ip与mac地址,但是这4台电脑还可以修改为没有做绑定的IP地址进行上网 2222-2222 (黎明) -3333-3333 (刘德华) -4444-4444 (周润发) -5555-5555 (梁朝伟)。 现在黎明的电脑进行了地址绑定,但是黎明可以手动将电脑的地址修改为 所以我们要将子网内的所有地址和mac地址进行绑定 -0000-0000 (这个mac地址一定要用一个假的不存在的地址) 0000-0000 (同样) ……………… 这样绑定以后上面4位明星的电脑只能用他们的地址。 如果现在局域网中又加入一台电脑,想要让他上网的话,假如给他一个地址1 那么需要将192.168.1.6 0000-0000-0000 这条删除,命令是undo。然后在执行arp static 192.168.1.6 mac地址 做完以后记得保存,在视图模式下, 后面输入system 回车后进入全局模【TWZX】, 保存要从全局模式退出,进入视图模式,命令是:【TWZX】quit 回车

wifi下获取ip和mac地址

2. [代码][Java]代码 01//所需的权限 02 03 04 05--------------------------------------------------------------------- 06//布局 07 14 18 19 23------------------------------------------------------------------------------- 24//正文 25p a c k a g e c o m.w i f i; 26 27i m p o r t j a v a.n e t.I n e t A d d r e s s; 28i m p o r t j a v a.n e t.N e t w o r k I n t e r f a c e; 29i m p o r t j a v a.n e t.S o c k e t E x c e p t i o n;

如何破解MAC地址与IP地址绑定策略

如何破解MAC地址与IP地址绑定策略 互联网 1 引言 对“IP地址盗用”的解决方案绝大多数都是采取MAC与IP地址绑定策略,这种做法是十分危险的,本文将就这个问题进行探讨。在这里需要声明的是,本文是处于对对MAC与IP地址绑定策略安全的忧虑,不带有任何黑客性质。 1.1 为什么要绑定MAC与IP 地址 影响网络安全的因素很多,IP地址盗用或地址欺骗就是其中一个常见且危害极大的因素。现实中,许多网络应用是基于IP的,比如流量统计、账号控制等都将 IP地址作为标志用户的一个重要的参数。如果有人盗用了合法地址并伪装成合法用户,网络上传输的数据就可能被破坏、窃听,甚至盗用,造成无法弥补的损失。 盗用外部网络的IP地址比较困难,因为路由器等网络互连设备一般都会设置通过各个端口的IP地址范围,不属于该IP地址范围的报文将无法通过这些互连设备。但如果盗用的是Ethernet内部合法用户的IP地址,这种网络互连设备显然无能为力了。“道高一尺,魔高一丈”,对于Ethernet内部的IP 地址被盗用,当然也有相应的解决办法。绑定MAC地址与IP地址就是防止内部IP盗用的一个常用的、简单的、有效的措施。 1.2 MAC与IP 地址绑定原理 IP地址的修改非常容易,而MAC地址存储在网卡的EEPROM中,而且网卡的MAC地址是唯一确定的。因此,为了防止内部人员进行非法IP盗用(例如盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败:而且由于网卡MAC地址的唯一确定性,可以根据MAC地址查出使用该MAC地址的网卡,进而查出非法盗用者。

查看修改和绑定MAC地址的详细方法与步骤

教你如何查看及修改和绑定MAC地址 给出方法来绑定你的IP和MAC地址防止别人盗用你的MAC地址,MAC地址就是物理地址。 XP系统下绑定 开始菜单——运行——输入CMD——再输入ipconfig /all 查看你的IP地址和MAC地址(物理地址),然后在输入arp -s ip mac就可以将IP绑定MAC地址了。如arp -s 10.5.118.145 00-25-B3-72-4B-D8,10.5.118.145是我的IP地址,00-25-B3-72-4B-D8是我的物理地址。如果要解除绑定就输入arp -d解除MAC地址绑定。 Windows7系统下绑定 win7系统的话arp绑定无效,勒个时候就要用其他方法: 使用 arp -a 命令查看网关的MAC网卡物理地址 使用 netsh i i show in命令查看本地连接的idx编号,我的是11的。 使用 netsh -c “i i” add neighbors 本地连接的idx “网关IP”“网关mac“命令绑定MAC地址 使用 arp -a 查看MAC绑定结果 最后绑定的结果是静态的。如果没有人盗用你的MAC地址最好就不要绑定了。

1.执行arp-s 命令即可绑定IP和MAC地址,但在Win7下运行arp -s 绑定mac时, 出现“ARP 项添加失败: 拒绝访问。”的提示,Win7下绑定IP和MAC地址操作和X P有所差别,在Win7中需要用netsh命令了来绑定Mac地址。 2.1、CMD中输入:netsh i i show in,找到“本地连接”对应的“Idx” (笔者的 是“11”,下面neighbors后面的数字跟这里一致。) 3.2、下面在CMD输入:netsh -c “i i” add neighbors 11 “网关IP” “Mac地 址“,这里11是idx号。 通过上面的命令就能绑定Mac地址,而在Win7上用arp -d并不能完全的删除绑定,必须使用netsh -c "i i" delete neighbors IDX(IDX改为相应的数字)才可删除M AC地址绑定。

相关主题