精华内容
下载资源
问答
  • MAC地址,也就是网卡,对于单网卡来说是唯一的(64位)十六进值的物理地址,它是在出前厂就已经分配...一、MAC地址的用途 MAC地址在网卡中是固定的,每张网卡的MAC地址都不一样。网卡在制作过程中,厂家会在它的EPROM里面烧

    MAC地址,也就是网卡,对于单网卡来说是唯一的(64位)十六进值的物理地址,它是在出前厂就已经分配好了的。 每一个物理设备都有一个唯一对应的MAC地址,MAC地址绑定IP地址,是网络管理常用的一种方式。

    一、查看mac

    点击开始——运行——输入CMD确定——出现DOS窗口输入 ipconfig -all 就可以看到你电脑上所有的网卡信息,包括MAC地址。

    二、MAC地址用处

    一、MAC地址的用途 MAC地址在网卡中是固定的,每张网卡的MAC地址都不一样。网卡在制作过程中,厂家会在它的EPROM里面烧录上一组数字,这组数字,每张网卡都各不相同,这就是网卡的MAC(物理)地址。 由于MAC地址的唯一性,因此它主要用来识别网络中用户的身份。例如ADSL上网时,电信用它来记费,确认是你上的网;在校园网中,MAC地址也可以用来识别用户。对于校园网的正式用户,其MAC地址会登记在服务器端,假如你是非法用户,服务器中就没有你的网卡MAC地址,这样当你试图连上网时,服务器就会立刻认出你、阻止你连上网络。
    二、MAC地址是可以修改的 有些场合,例如冒充网络中的正式用户,就需要修改你的网卡MAC.要修改MAC地址,你可以通过硬件的方法实现,即利用网卡厂家提供的修改程序来烧录网卡的EEPROM,这样做虽然可行,但是风险很大、操作也复杂,即使你很有经验,也难免在操作中出现错误。 其实你完全没必要用烧录方法、修改网卡中的MAC地址。要知道Windows安装的时候,会自动从网卡中读入MAC地址,把它存放在注册表中以备后用。当数据在网络中传输时,从网卡发出的数据包中要求有一个源MAC地址,这个MAC地址就是从注册表中读取的(并非从网卡中读取的),因此只要你修改了注册表中的MAC地址,就相当于改了网卡EEPROM中的MAC地址,两者实际效果是完全相同的!

    三、修改

    1、使用软件修改 本方法适用于所有类型的网卡。在不同的Windows下,要用不同的软件修改MAC.
    2、在网卡属性中修改 如果你的网卡采用了RealTek公司的RTL8139芯片,就可以在网卡属性中修改MAC,这样注册表中的MAC地址也会一同改变,方法如下:在Win2003/XP/2000中,点击菜单“开始”/设置/控制面板,双击“系统”,点击“硬件”/设备管理器,在设备管理器中展开“网络适配器”,右击要修改MAC地址的网卡,选择“属性”;点击“高级”选项卡,在“属性”下,选择点击Network Address项目,在右侧“值”的下方,输入你要指定的MAC地址值(例如020202020202),注意要连续输入12个数字或字母(中间不要输入-);重新启动电脑后,修改即可生效。至于Win98下的MAC修改方法,与以上方法类似。 如果修改之后,在Win2003/XP/2000 下,你又想把注册表中的MAC地址恢复成原样,可以选择“Network Address”项,将右边的值选择为“不存在”,再重新启动即可;在Win98下是选择“没有显示”。
    3、在注册表中修改 对于非RTL8139芯片的网卡,你可以直接修改注册表中的MAC,注意:修改注册表前,要先备份注册表。 (1)Win2003/XP/2000 点击“开始”/运行,输入regedit打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0000、0001、0002等主键下,查找DriverDesc的内容,了解网卡使用了哪个主键(例如0001),如果主键下有params项,则该主键也是网卡所使用的; 例如网卡使用了0001主键,因此我们就选中它,在其右边建一个字符串项(名为NetworkAddress),双击该串,输入你指定的MAC地址值(注意应该是12位的连续数字或字母,其间没有-号);在0001下的NDI\params中添加一项子键(名为NetworkAddress),选择该子键,在其右边添加名为default的字符串,键值为修改后的MAC地址,与上面的数值相同;修改后重启生效。 (2)Win98 点击“开始”/运行,键入winipcfg选择你要修改的网卡,并记录下MAC地址值;然后点击“开始”/运行,输入regedit打开注册表,定位到HKEY_LOCAL_MACHINE\System\Current ControlSet\Services\Class\Net,下面有“0000”、“0001”、“0002”等子键;从“0000”子键开始点击,依次查找子键下的“DriverDesc”键内容,直到找到刚才记录的MAC地址为止; 例如网卡使用了0001主键,因此我们就选中它,在其右边新建一个串,名称为networkaddress,再双击该串,输入新的MAC地址值(注意应该是12位的连续数字或字母,其间没有-号);最后重启电脑使修改生效。

    一、直接修改

    打开网络连接,在“本地连接”的小电脑图标,右键打开“属性”。

    点击上图的配置,在下图选择“Network Address”,然后在右侧的“值”中输入12个十六进制的数字(注意,mac地址每一位从0-F都是合法的,如00-50-8D-11-2F-9B,前3个字节表示制造商,后三个字节表示编号),单击“确定”保存设置,之后停用网络,在启用网络便可(或者重启电脑)。

    二、修改注册表

    如果网卡不支持直接修改,就可以通过注册表来完成。

    1 、在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318},之后就会看到0000 、 0001 、 0002 等主键下,查找 DriverDesc ,内容为你要修改的网卡的描述,如“ NVIDIA nforce Networking Controller”。

    2 、在其下,添加一个字符串,命名为 NetworkAddress ,其值设为你要的 MAC 地址(注意地址还是连续写)。如: 00E0DDE0E0E0 。

    3 、然后到其下 Ndiparams 中添加一项名为 NetworkAddress 的主键,在该主键下添加名为 default 的字符串,其值是你要设的 MAC 地址,要连续写,如: 000000000000 。(实际上这只是设置在后面提到的高级属性中的“初始值”,实际使用的 MAC 地址还是取决于在第 2 点中提到的 NetworkAddress 参数,这个参数一旦设置后,以后高级属性中的值就是 NetworkAddress 给出的值而非 default 给出的了。)

    4 、在 NetworkAddress 的主键下继续添加名为 ParamDesc 的字符串,其作用为指定 NetworkAddress 主键的描述,其值可自己命名,如“ Network Address ”,这样在网卡的高级属性中就会出现 Network Address 选项,就是你刚在注册表中加的新项 NetworkAddress ,以后只要在此修改 MAC 地址就可以了。继续添加名为 Optional 的字符串,其值设为“ 1 ”,则以后当你在网卡的高级属性中选择 Network Address 项时,右边会出现“不存在”选项。

    5 、重新启动你的计算机,打开网络邻居的属性,双击相应网卡项会发现有一个 Network Address 的高级设置项,可以用来直接修改 MAC 地址或恢复原来的地址。

    四、注意事项

    1 可以修改 利用MAC地址修改器
    2 MAC 地址是全球唯一的没错 这是指在出厂的时候唯一 经过认为修改 可能会造成MAC 地址相同
    3 如果说到冲突 在同一个局域网内 有两块MAC 相同的地址 会造成通信问题,流量会分不清到底需要和哪块网卡会话.
    4在公网上 如果有两块相同地址的网卡,如果都是被绑定同一个软件上, 那么也会造成 3 中的现象.不过这个可能性很小.
    5 修改过的网卡 除非你记下原先的MAC 地址 否则不能恢复

    原文:游戏封网卡mac地址后修改

              易语言api hook GetAdaptersAddresses 劫持网卡物理地址

    展开全文
  • MAC(Medium/Media Access Control)地址是针对网卡来说的,厂家在网卡在制作过程中,会在它的EPROM里面烧录一组数字,这组数字,每张网卡都各不相同,这就是网卡的MAC(物理)地址
  • 网卡MAC地址修改工具

    2020-11-18 11:19:30
    网卡MAC地址修改工具,专业软件,用于WINDOWS系统,用于修改网卡的MAC地址,防止上级路由器将MAC地址加入黑名单而无法上网。
  • 设置网卡的mac地址

    2016-07-18 18:46:56
    先用cmd和ipconfig /all 命令在命令行方式下查看本机的mac地址。 我的电脑点右键,选择管理下的设备管理器,然后在右边找到网络适配器下的网卡型号,右键选择属性,在高级选项卡下的属性里选择有Address的那...

    参考此文:http://blog.sina.com.cn/s/blog_011792290100wbal.html


    先用cmd和ipconfig /all 命令在命令行方式下查看本机的mac地址。


    我的电脑上点右键,选择管理下的设备管理器,然后在右边找到网络适配器下的网卡型号,右键选择属性,在高级选项卡下的属性里选择有Address的那项,右边选择值,然后输入12位数字的网卡的MAC地址,中间不能有“-”,然后确定。



    注册表修改MAC地址的方法:
    1. 在运行中输入:regedit命令,进入注册表。

    在注册表中找到下面位置:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}


    2. 通过查找诸如0000,0001分支中的DriverDesc的键值来查看现有网卡是在哪个分支下,例如我的是在0002下面。


    3. 在0002子键下添加一个字符串,命名为“NetworkAddress”,键值为修改后的MAC地址,要求为连续的12个16进制数。


    4. 然后在“ 0002”子键下的NDI\params中新建一项名为NetworkAddress的子键,在该子键下添加或修改名为“default”的字符串,键值为修改后的MAC地址。


    5. 在NetworkAddress的子键下继续建立名为“ParamDesc”的字符串,其作用为指定NetworkAddress的描述,其值可为“MAC Address”。这样以后打开网络邻居的“属性”,双击相应的网卡就会发现有一个“高级”设置,其下存在MAC Address的选项,它就是你在注册表中加入的新项NetworkAddress,以后只要在此修改MAC地址就可以了
    展开全文
  • MAC地址是网卡的物理地址,它由48位二进制数表示...其中前面24位表示网络厂商标识符,后24位表示序号,每块网卡的MAC地址是世界独一无二的,下面为大家介绍下如何解决宽带客户端限制路由器共享上网的方法-mac地址克隆
  • There are a lot of reasons you might want to manually set your MAC address for your network card.... 有很多原因可能需要您手动设置网卡的MAC地址。 我不会问你你的原因是什么。 To change thissetting, w...

    There are a lot of reasons you might want to manually set your MAC address for your network card. I won’t ask you what your reason is.

    有很多原因可能需要您手动设置网卡的MAC地址。 我不会问你你的原因是什么。

    To change this setting, we’ll need to edit the /etc/network/interfaces file. You can choose to use a different editor if you’d like.

    要更改此设置,我们需要编辑/ etc / network / interfaces文件。 您可以根据需要选择使用其他编辑器。

    sudo gedit /etc/network/interfaces

    sudo gedit / etc / network / interfaces

    You should see the line for your network interface, which is usually eth0. If you have dhcp enabled, it will look like this:

    您应该看到网络接口的行,通常为eth0。 如果启用了dhcp,它将如下所示:

    auto eth0iface eth0 inet dhcp

    自动eth0iface eth0 inet dhcp

    Just add another line below it to make it look something like this:

    只需在它下面添加另一行,使其看起来像这样:

    auto eth0iface eth0 inet dhcp       hwaddress ether 01:02:03:04:05:06

    自动eth0iface eth0 inet dhcp hwaddress ether 01:02:03:04:05:06

    Obviously you would want to choose something else for the MAC address, but it needs to be in the same format.

    显然,您可能想为MAC地址选择其他内容,但是它必须采用相同的格式。

    sudo /etc/init.d/networking restart

    sudo /etc/init.d/networking重新启动

    You will need to restart networking or reboot to take effect.

    您将需要重新启动网络或重新启动才能生效。

    翻译自: https://www.howtogeek.com/howto/ubuntu/change-your-network-card-mac-address-on-ubuntu/

    展开全文
  • java在windows获取网卡的mac地址

    千次阅读 2017-08-25 15:26:51
    第1种是通过命令行“ipconfig all”,然后通过Runtime.getRuntime().exec(command)执行该命令,再去输入流中读取执行命令打印输出内容,通过找到“物理地址”或该英文字样去匹配,然后拿到mac地址。这种方法...

    1. 写在前面

    网上的解决方法大致就是2种,第1种是通过命令行的“ipconfig all”,然后通过Runtime.getRuntime().exec(command)执行该命令,再去输入流中读取执行命令打印输出的内容,通过找到“物理地址”或该英文字样去匹配,然后拿到mac地址。这种方法的缺点是,字样可能是中文也可能是英文,而且不同的系统输出的内容可能或不一样,用字符串匹配去找,不是特别通用,但仍能解决问题。第2种方式是Java的NetworkInterface、InetAddress等接口,网上有很多用这个的方法,但都千篇一律,其实真正能用的代码,我几乎找不到。因为实际上一台机器上可能有多张网卡,每张网卡又可能有多个网络接口,每个网络接口又可能有多个IP地址(IP接口),(我的理解是这样的,有不对的地方,欢迎指出)网上大多数的写法如下:

    InetAddress ia = InetAddress.getLocalHost();//获取本地IP对象  
    //获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。  
    byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();  
    //下面代码是把mac地址拼装成String  
    StringBuffer sb = new StringBuffer();  
    for(int i=0;i<mac.length;i++){ 
    	if(i!=0)
    		sb.append("-");  
    
        //mac[i] & 0xFF 是为了把byte转化为正整数  
        String s = Integer.toHexString(mac[i] & 0xFF);  
        sb.append(s.length()==1?0+s:s);  
    }  
    //把字符串所有小写字母改为大写成为正规的mac地址并返回  
    return sb.toString().toUpperCase();  

    这会有什么问题呢?

    首先InetAddress.getLocalHost()获得不一定就是正确的IP(连接上网的那个IP),前面已经说明了,机器上物理的、虚拟的网络接口很多,IP可能就更多了。由于我笔记本上装了VirtualBox,经我测试,我用这个方法拿到的IP的是我虚拟机的IP:192.168.56.1,而这正是下面虚拟网卡的ip地址,如下图:


    所以断然使用这种方法拿到的IP根本就不一定满足你的需求,后面的结果当然也就是错的。

    而就我机器上的网路接口有多少呢?我测试了一下,竟有65个之多,当然并不是每一个都可用。如下图:

      

    测试代码如下:

    public static void test() throws UnknownHostException, SocketException{
    	//InetAddress ia = InetAddress.getLocalHost();
    	//System.out.println(ia.getHostAddress());
    	
    	Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
    	int cnt = 0;
    	while(interfaces.hasMoreElements()){
    		cnt += 1;
    		NetworkInterface ni = interfaces.nextElement();
    		System.out.println("网络接口名称:"+ni.getName());
    		System.out.println("网络接口的显示名称:"+ni.getDisplayName());
    	}
    	System.out.println(cnt);
    }
    所以再用这些API的时候,你需要先理解NetworkInterface、InetAddress和InterfaceAddress等这些概念,以及他们的相关方法都返回什么,不要盲目的乱写。其实从他们的一些方法就可以知道,比如NetworkInterface.getNetworkInterfaces()返回的不是一个网络接口,而是所有的网络接口,而一个网路接口有方法interface.getInetAddresses():Enumeration<InetAddress>和interface.getInterfaceAddresses:List<InterfaceAddress>就可以知道,每个网络接口上同样不只一个ip接口地址。针对这些问题,我将提出后面的几种解决方法供大家参考,但每个人的需求不同,例如我要得到的是连接上网的那个网络接口的mac地址,大家应针对自己的需求进行调整,主要还是要深入理解这些接口。网上的代码很多,但还是自己亲自测试一下。

    这里可以进一步了解这些接口方法:http://www.cnblogs.com/guangshan/p/4712550.htmlJava API研究:获取本地环境所有网卡及每个网卡的所有网络配置

    2.代码实现获取mac地址

    法1:

    如果能提供网卡名称,那么就最方便了。我的连接上网的网卡(准确叫网络接口)名称是eth7,所以我可以用下面的方法,直接得到该网络接口的mac地址:

    /*
    * 通过网卡名称获取该网卡的mac地址
    * @param networkCardName 网卡名,如eth7 
    * @return mac地址字符串:a0-xx-xx-xx-xx-cb
    */
    public static String getMacAddressByName(String networkCardName) throws SocketException {
    	NetworkInterface ni = NetworkInterface.getByName(networkCardName);
    	byte[] mac = ni.getHardwareAddress();
    	//byte->int->16进制->string
    	StringBuffer sb = new StringBuffer();
    	for (int i = 0; i < mac.length; i++) {
    		if (i != 0)
    			sb.append("-");
    		String tmp = Integer.toHexString(mac[i] & 0xFF);// 将byte转为正整数。然后转为16进制数
    		sb.append(tmp.length() == 1 ? 0 + tmp : tmp);
    	}
    	System.out.println("测试macAddress:"+sb.toString().toLowerCase());
    	return sb.toString().toLowerCase();
    }
    执行结果:

    法2:

    当不确定网卡名字时,要获得连接上网的网卡mac地址。通过traceroute的第一跳获得默认网关,然后获取本机的所有网络接口(NetworkInterface)以及每个网络接口的接口地址(InetAddress),通过对比接口地址IP与网关是不是在同一个网段下(根据网络前缀即子网掩码来验证),来判定这个接口地址ip所在的网络接口(NetworkInterface)是连接上网的那个接口,然后他的mac地址就是我们要找的。

    	/*
    	 * 通过traceroute的第一跳获得默认网关,然后获取本机的所有网络接口(NetworkInterface)以及每个网络接口的接口地址(InetAddress),
    	 * 通过对比接口地址IP与网关是不是在同一个网段下(根据网络前缀即子网掩码来验证),来判定这个接口地址ip所在的网络接口(NetworkInterface)是连接上网的那个接口,然后他的mac地址就是我们要找的
    	 * @return Set<String>:(a0-xx-xx-xx-xx-cb,0c-xx-xx-xx-xx-xx)
    	 */
    	public static Set<String> getLocalMacAddress2() throws Exception{
    		Set<String> macSet = new HashSet<String>();
    		InetAddress ip = null;
    		String gateway = getGateway();
    		
    		Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
    		while(interfaces.hasMoreElements()){
    			NetworkInterface ni = interfaces.nextElement();
    			if(!ni.isVirtual() && !ni.isLoopback() && ni.isUp()){
    				List<InterfaceAddress> infs = ni.getInterfaceAddresses();
    				for(InterfaceAddress inf : infs){
    					ip = inf.getAddress();
    					if(ip!=null && ip instanceof Inet4Address && !ip.isLoopbackAddress()){
    						if(ip.isSiteLocalAddress()){
    							String ipStr = ip.getHostAddress();
    							//获得网络前缀
    							short maskLen = inf.getNetworkPrefixLength();
    							if(getNetworkNumber(ipStr, maskLen).equals(getNetworkNumber(gateway, maskLen))){//对比是否在同一个网段
    								//byte->int->16进制->string
    								byte[] mac = ni.getHardwareAddress();
    								StringBuffer sb = new StringBuffer();
    								for(int i=0; i<mac.length; i++){
    									if(i!=0)
    										sb.append("-");
    									String tmp = Integer.toHexString(mac[i]&0xFF);//将byte转为正整数。然后转为16进制数
    									sb.append(tmp.length()==1?0+tmp:tmp);
    								}
    								System.out.println("网络接口名称ni:"+ni.getName()+"---"+"mac地址:"+sb.toString().toLowerCase()+"---"+"ip地址:"+ipStr);
    								macSet.add(sb.toString().toLowerCase());
    							}
    						}	
    					}
    				}
    			}
    		}
    		return macSet;
    	}

            /*
    	 * 通过traceroute的第一跳获得网关,缺点:没有连接网络时获取不到
    	 * @return String 网关
    	 */
    	public static String getGateway(){
    		String os = System.getProperty("os.name");
    		
    		if (os != null && os.startsWith("Windows")) {
    			try{
    				String command = "tracert -d www.baidu.com";
    				Process p = Runtime.getRuntime().exec(command);
    				BufferedReader br = new BufferedReader(new InputStreamReader(
    						p.getInputStream()));
    				String line;
    				
    				String[] tmp = null;
    				while ((line = br.readLine()) != null){
    					if(line.trim().startsWith("1")){
    						tmp = line.trim().split("\\s+");
    						if(tmp.length>0 && tmp[0].equals("1")){
    							System.out.println("网关:"+tmp[tmp.length-1]);
    							return tmp[tmp.length-1];
    						}
    					}
    				}
    				br.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		return null;
    	}
    验证:


    	/*
    	 * 获得某ip地址所在网络的网络号
    	 * @param ip 
    	 * @param masklen 掩码长度
    	 * @return 网络号
    	 */
    	public static String getNetworkNumber(String ip, short masklen){
    		String[] ipStr = ip.split("\\.");
    		StringBuffer sb = new StringBuffer();
    		sb.append(ipStr[0]);
    		for(int i=1; i<ipStr.length; i++){
    			if(i<masklen/8)
    				sb.append("."+ipStr[i]);
    			else
    				sb.append(".0");
    		}
    		return sb.toString();
    	}
    运行结果:


    这里看到了2个mac地址,为什么呢?因为我的笔记本同时通过有线和wifi都连接上了网络


    而这个运行结果也恰好证明了我前面说的,机器可以有多个网络接口,他们可以同时连接上网,他们都是有效的,也正处于工作中

    另一个要说明的就是这种方法有个缺点,如果没有网络连接时,traceroute命令会获取不到网关,即没有第一跳,如下图:


    法3:

    通过路由表找到目标网络是"0.0.0.0"的那一条记录(通常是第一条),即为默认网关,然后找到连接默认网关的ip接口,通过这些ip接口(InetAddress),对应上他们所在的网络接口(NetworkInterface),然后获取该网络接口的mac地址即为所求。

    可以先看一下路由表:route print


    从此时的路由也可以看出,此时有2个ip接口都连接了默认网关,即两个接口都正在连接上网。与法2的结果一致。从这个路由表,我们可以得到网关、连接上网的IP接口,然后通过这些IP接口创建NetworkInterface的实例,继而跟前面几种方法一样,得到相应的mac地址。

    	/*
    	 * 通过路由表找到连接默认网关的ip接口,通过这些ip接口(InetAddress),对应上他们所在的网络接口(NetworkInterface),然后获取网络接口的mac地址
    	 * @return Set<String>:(a0-xx-xx-xx-xx-cb,0c-xx-xx-xx-xx-39)
    	 */
    	public static Set<String> getLocalMacAddress() throws UnknownHostException, SocketException {
    		Set<String> macSet = new HashSet<String>();
    		
    		for(Object ipAndGatewayObj : getIpAndGateway()){
    			//String gateway = ((JSONObject)ipAndGatewayObj).get("gateway").toString();
    			String ip = ((JSONObject)ipAndGatewayObj).get("ip").toString();
    			InetAddress ia = InetAddress.getByName(ip);
    			NetworkInterface ni = NetworkInterface.getByInetAddress(ia);
    			byte[] mac = ni.getHardwareAddress();
    			//byte->int->16进制->string
    			StringBuffer sb = new StringBuffer();
    			for (int i = 0; i < mac.length; i++) {
    				if (i != 0)
    					sb.append("-");
    				String tmp = Integer.toHexString(mac[i] & 0xFF);// 将byte转为正整数。然后转为16进制数
    				sb.append(tmp.length() == 1 ? 0 + tmp : tmp);
    			}
    			System.out.println("网络接口名称ni:"+ni.getName()+"---"+"mac地址:"+sb.toString().toLowerCase()+"---"+"ip地址:"+ip);
    			macSet.add(sb.toString().toLowerCase());
    		}
    		return macSet;
    
    	}
    	/*
    	 * 通过路由表的目的网络是'0.0.0.0'获得网关
    	 * @return List<JSONObject> (网关,ip)
    	 */
    	public static List getIpAndGateway(){
    		String os = System.getProperty("os.name");
    		List<JSONObject> netInfoList = new ArrayList<JSONObject>();
    		if (os != null && os.startsWith("Windows")) {
    			try{
    				String command = "route print";
    				Process p = Runtime.getRuntime().exec(command);
    				BufferedReader br = new BufferedReader(new InputStreamReader(
    						p.getInputStream()));
    				String line;
    				
    				String[] tmp = null;
    				JSONObject netInfo = null;
    				while ((line = br.readLine()) != null) {
    					tmp = line.trim().split("\\s+");
    					if (tmp.length > 0 && tmp[0].equals("0.0.0.0")) {
    						netInfo = new JSONObject();
    						netInfo.put("gateway", tmp[2]);
    						netInfo.put("ip", tmp[3]);
    						netInfoList.add(netInfo);
    					}
    				}
    				br.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		return netInfoList;
    	}
    运行结果与法2一致:





    展开全文
  • Ubuntu下更改网卡的MAC地址的方法

    千次阅读 2014-01-14 23:43:29
    Ubuntu下更改网卡的MAC地址的方法 我们知道每块网卡(NIC)都有一个固化在硬件存储器中物理地址(或称硬件地址),也就是MAC,这个地址,在出厂就已经固定,除非是使用可擦写编程器重写,否则是无法变更的。...
  • 开发一个自动检测网卡的MAC地址及与其绑定的IP地址的工具。 基础概念介绍: 网卡网卡是一块被设计用来允许计算机在计算机网络进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以...
  • 每块网卡都有一个固定卡号,并且任何正规厂家生产的网卡上都直接标明了卡号,一般为一组12位16进制数。其中前6位代表网卡生产厂商。怎么查看Mac地址?怎么样获取到Mac地址?1、Windows 系统:开始菜单 » 运行 ...
  • Linux下获取指定网卡的IP和MAC地址

    千次阅读 2019-03-10 18:10:28
    Linux下获取指定网卡的IP和MAC地址 一、使用场景 ...另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址。 二、用法 使用ifconfig eth0读取网卡信息 手动将IP地址或MAC...
  • 一台机器可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址...
  • 获取网卡的MAC地址

    2010-07-27 03:00:00
      第一种方法:使用...NCB,LANA_ENUM,ADAPTER_STATUS (只写核心部分,其实如果只想要物理网卡的MAC地址,直接调用第3步就行了,这里可以列出多个MAC地址,除物理的外都是虚拟的) 1、用NCBE
  • 在本机根据网卡的IP地址找出对应网卡的MAC地址网卡不止一块。
  • 先关闭wifi,在运行以下java代码:获取当前连接网络的网卡的mac地址private static String parseByte(byte b) {String s = "00" + Integer.toHexString(b)+":";return s.substring(s.length() - 3);}/*** 获取当前...
  • 引言 使用场景: 我使用的Linux服务器上有多个网卡,有时候就...另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址。 一般用法: 使用ifconfig eth0读取网卡信息 手动将IP地址或MAC地址拷贝
  • VC 获取物理网卡的MAC地址

    千次阅读 2011-07-26 16:39:29
    一台机器可能有多个网卡,每一个网卡只有一个MAC地址,但是每一个网卡可能配置有多个IP地址;如平常笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,...
  • 如何修改网卡的MAC地址

    千次阅读 2013-07-03 09:11:32
    转载: ... MAC(Medium/Media Access Control)地址是针对网卡来说的,厂家在网卡在制作过程中,会在它的EPROM里面烧录一组数字,这组数字,每张网卡都各不相同,这就是网卡的MAC(物理)地址
  • vmware的网卡配置及mac地址修改

    千次阅读 2012-12-10 13:14:46
    1. vmware作为x86平台为嵌入式开发提供了极大便利,工作中常常利用vmware作目标机进行功能验证。...由于不用vmware上网,所以最简单的就是将虚拟机的网卡配置为custom,自主选择vmnet1或vmnet8,跑在vmware上的虚拟机
  • Android机顶盒取网卡的Mac地址

    千次阅读 2014-06-05 14:04:03
    android机顶盒一般有两个网卡,一个有线...怎么取有线网卡的mac地址,经过观察settings里面的源码,发现了获取有线网卡mac地址的方法,即使当前机顶盒连接时wifi,如下: [java] view plaincopyprint?
  • C#获得本机物理网卡的MAC地址

    万次阅读 2014-07-02 14:54:44
    今天中午吃饭前看到四月份...授权时是根据本地网卡的MAC地址授权的,登录时验证授权时用的无线网卡的MAC地址,所以导致软件打不开。简单搜了下,参考这篇文章,结合msdn上的描述和本机测试,把获得本机物理网卡的MAC
  • c++获取网卡MAC地址

    千次阅读 2016-04-19 10:57:06
    一台机器可能有多个网卡,每一个网卡只有一个MAC地址,但是每一个网卡可能配置有多个IP地址;如平常笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,...
  • windows有虚拟网卡或多个网卡的情况下,很难判断本机IP到底用的哪一个网卡上的IP,也难以区分虚拟网卡和物理网上。 这里我们使用windows的函数GetBestInterface(destIP,index), 系统会给一个到指定IP地址的最适合...
  • Mac地址就是在媒体接入层使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。 对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI...
  • 每一台电脑的网卡,都有一个唯一的mac地址的,如果你使用的是mac电脑,怎么查看这个网卡的mac地址?接下来,让我们来看一下。 二、方法和步骤 点击桌面上的启动台 找到系统信息 点击网络下的Wi-Fi 三、总结 1....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,068
精华内容 827
关键字:

网卡上的mac地址