精华内容
下载资源
问答
  • 获取物理网卡地址

    2017-12-02 14:20:43
    byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress(); for (int i = 0; i ; i++) { System.out.println(Integer.toHexString(mac[i]));
    byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress();
    			for (int i = 0; i < mac.length; i++) {
    				
    				System.out.println(Integer.toHexString(mac[i]));
    			}
    默认的是十进制 需要转换为系统表示的16进制
    展开全文
  • 如何用JAVA获取物理网卡地址?只需要在windows系统中,谢谢!
  • Delphi 获取真实物理网卡地址

    热门讨论 2009-02-19 10:06:56
    Delphi 获取当前网卡地址 永久网卡地址 厂商信息
  • 获取物理网卡MAC地址

    2009-05-25 21:31:40
    不像网上很多的那种,根本不能调试,缺少文件,还识别不了物理网卡信息,该程序简洁易理解但功能实现。操作如下: The NCBRESET on LANA 0 return code is: 0x0 The NCBASTAT on LANA 0 return code is: 0x0 The ...
  • //获取主板物理网卡地址 public static string GetNetwork() { string strMac = null; NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); ...

    //获取主板物理网卡地址
    public static string GetNetwork()
    {
    string strMac = null;
    NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface adapter in fNetworkInterfaces)
    {
    string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection";
    RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);
    if (rk != null)
    {
    string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();
    //int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0));
    if (fPnpInstanceID.Length > 3 && fPnpInstanceID.Substring(0, 3) == "PCI")
    {
    if (adapter.GetPhysicalAddress() != null)
    {
    strMac = adapter.GetPhysicalAddress().ToString();
    }
    }
    //else
    //{
    // if (fMediaSubType == 2)
    // {
    // //无线网卡
    // }
    // if (fMediaSubType == 1)
    // {
    // //虚拟网卡
    // }
    //}
    }
    }

    if (strMac != null)
    {
    return strMac.ToLower();
    }
    else
    {
    return "";
    }
    }

    转载于:https://www.cnblogs.com/zhasen/p/3440998.html

    展开全文
  • 这里我们使用windows的函数GetBestInterface(destIP,index), 系统会给一个到指定IP地址的最适合的网卡的序列号,通过这个序列号再遍历各个网卡就可以得到当前系统所用的网卡是哪一个,如果只有一个物理网卡,也默认...

    windows有虚拟网卡或多个网卡的情况下,很难判断本机IP到底用的哪一个网卡上的IP,也难以区分虚拟网卡和物理网上。

    这里我们使用windows的函数GetBestInterface(destIP,index), 系统会给一个到指定IP地址的最适合的网卡的序列号,通过这个序列号再遍历各个网卡就可以得到当前系统所用的网卡是哪一个,如果只有一个物理网卡,也默认使用此物理网卡。

     

    使用此方法需要注意, 如果电脑网络未连接,GetBestInterface会返回失败。只有在联网状态并下才会成功。

    对一些需要联网才能运行的程序来说,用这种方法是没有问题的。

    #include <winsock2.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    #include <stdlib.h>
    #pragma comment(lib, "IPHLPAPI.lib")
    
    
    
    int main()
    {
    
    	IPAddr add = 0x08080808;//用8.8.8.8这个IP
    	DWORD index;
    	auto ret = GetBestInterface(add, &index);
    
    	PIP_ADAPTER_INFO pAdapterInfo;
    	PIP_ADAPTER_INFO pAdapter = NULL;
    	DWORD dwRetVal = 0;
    	UINT i;
    
    
    
    	ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
    	pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
    	if (pAdapterInfo == NULL) {
    		printf("Error allocating memory needed to call GetAdaptersinfo\n");
    		return 1;
    	}
    	// Make an initial call to GetAdaptersInfo to get
    	// the necessary size into the ulOutBufLen variable
    	if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
    		free(pAdapterInfo);
    		pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen);
    		if (pAdapterInfo == NULL) {
    			printf("Error allocating memory needed to call GetAdaptersinfo\n");
    			return 1;
    		}
    	}
    
    	if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
    		pAdapter = pAdapterInfo;
    		while (pAdapter) {
    
    			if (pAdapter->Index != index)
    				continue;
    
    			printf("\tComboIndex: \t5d\n", pAdapter->ComboIndex);
    			printf("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
    			printf("\tAdapter Desc: \t%s\n", pAdapter->Description);
    			printf("\tAdapter Addr: \t");
    			for (i = 0; i < pAdapter->AddressLength; i++) {
    				if (i == (pAdapter->AddressLength - 1))
    					printf("%.2X\n", (int)pAdapter->Address[i]);
    				else
    					printf("%.2X-", (int)pAdapter->Address[i]);
    			}
    			printf("\tIndex: \t%d\n", pAdapter->Index);
    
    			printf("\tIP Address: \t%s\n",pAdapter->IpAddressList.IpAddress.String);
    			printf("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);
    			printf("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
    			printf("\t***\n");
    
    			pAdapter = pAdapter->Next;
    			printf("\n");
    		}
    	}
    	else {
    		printf("GetAdaptersInfo failed with error: %d\n", dwRetVal);
    
    	}
    	if (pAdapterInfo)
    		free(pAdapterInfo);
    
    
    
    	getchar();
    	return 0;
    }

    其他参考: 

    https://docs.microsoft.com/zh-cn/windows/win32/api/iptypes/ns-iptypes-ip_adapter_info

    https://blog.csdn.net/rcfsyx/article/details/9960665

    展开全文
  • Delphi获取当前计算机内所有网卡物理地址。 设计思路: 1 从注册表内获取计算机内所有网卡列表 2 根据网卡ID来获取网卡的mac地址获取规范比之网络上流传的大部分delphi获取网卡的源码都实用。 PS:当...
  • MAC,全称 Media Access ControlMac地址就是在媒体接入层上使用的地址,通俗点说就是网卡物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。对于MAC地址,由于我们不直接和它接触,...

    MAC,全称 Media Access Control

    Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。

    对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。

    以下函数可以获取MAC地址:

    '获取网卡物理地址

    Function GetMACAddress(strIP)

    Set net = Server.CreateObject("wscript.network")

    Set sh = Server.CreateObject("wscript.shell")

    sh.run "%comspec% /c nbtstat -A " & strIP & " > c:" & strIP & ".txt",0,true

    Set sh = nothing

    Set fso = createobject("scripting.filesystemobject")

    Set ts = fso.opentextfile("c:" & strIP & ".txt")

    macaddress = null

    Do While Not ts.AtEndOfStream

    data = ucase(trim(ts.readline))

    If instr(data,"MAC ADDRESS") Then

    macaddress = trim(split(data,"=")(1))

    Exit Do

    End If

    loop

    ts.close

    Set ts = nothing

    fso.deletefile "c:" & strIP & ".txt"

    Set fso = nothing

    GetMACAddress = macaddress

    End Function

    mac=GetMACAddress("您获取的IP地址")

    展开全文
  • VC 获取物理网卡的MAC地址

    千次阅读 2014-04-19 14:23:58
    获取网卡的MAC地址的方法很多,如:Netbios,SNMP,GetAdaptersInfo等。经过测试发现 Netbios 方法在网线拔出的情况下获取不到MAC,而 SNMP方法有时会获取多个重复的网卡的MAC,试来试去还是 GetAdaptersInfo方法比较...
  • 获取网卡的MAC地址的方法很多,如:Netbios,SNMP,GetAdaptersInfo等。经过测试发现 Netbios 方法在网线拔出的情况下获取不到MAC,而 SNMP 方法有时会获取多个重复的网卡的MAC,试来试去还是 GetAdaptersInfo 方法...
  • 转载:VC 获取物理网卡的MAC地址

    千次阅读 2018-07-14 10:04:37
    文章来源:https://blog.csdn.net/kingepoch/article/details/24108653获取网卡的MAC地址的方法很多,如:Netbios,SNMP,GetAdaptersInfo等。经过测试发现 Netbios 方法在网线拔出的情况下获取不到MAC,而 SNMP方法...
  • 这样在执行NCBASTAT命令后,由于ncb.ncb_buffer指针所指的缓冲区中为命令执行后网卡返回的统计结果(其中包含MAC网卡地址),我们使用与其同一地址的ADAPTER_STATUS结构的adapter_address[6]字段便可取出网卡地址。...
  • 获取网卡物理地址工具是一款获取远程网卡MAC地址的免费辅助工具(根据IP地址获取网卡MAC地址),小巧实用。
  • VB获取网卡物理地址
  • MAC地址获取,有线网卡与无线网卡、物理网卡与虚拟网卡的区分 获取当前活跃状态的网卡MAC地址、物理地址 Wmic命令:Win32_NetworkAdapter和Win32_NetworkAdapterConfiguration。 其中cmd命令行执行: 1.Wmic ...
  • java 获取本地ip地址,mac物理网卡地址,用java来写个打印机,需要获取本地打印机的ip,mac地址 详细请查看 http://yayihouse.com/yayishuwu/chapter/2127
  • 物理网卡地址

    2019-09-23 01:10:56
    以下是获取网卡 MAC地址的方法. /// <summary> /// 以下是获取网卡 MAC地址的方法. /// 只能获取第一块 /// </summary> /// <returns></returns> public static string ...
  • }//注册表中网卡信息中该项值中的"PCI"并不都位于最前 string PnpInstanceID =buffers;int ret = PnpInstanceID.find("PCI");if (ret == -1) { RegCloseKey(hLocalNet);return false; }//get name//Ethernet Wi-Fi ...
  • 在日常应用开发时经常需要获取设备的MAC地址,由于虚拟网卡等的干扰导致获取的MAC地址错误,本VC工程提供一种基于API的MAC地址的筛选方法能够直接获取当前正在使用的物理网卡地址
  • 为了保证用户名的安全,将用户名和该机器的网卡物理地址进行绑定,将其保存至session中,登陆的时候检查该用户的session是否是与本机器网卡物理地址相匹配。package com.sdtrip.MacDemo;import java.io....
  • //获得机器的MAC地址 public static String getMacAddress() throws IOException { String os = System.getProperty("os.name");//操作系统名称 String macStr = "";//MAC地址 try { if (os.startsWith(...
  • 获得指定网卡序号的Mac地址,指定网卡号,首先对选定的网卡发送一个NCBRESET命令,以便进行初始化,发送NCBASTAT命令以获取网卡的信息.
  • java获取网卡物理地址

    千次阅读 2011-03-07 23:02:00
    package otherexample; import java.net.NetworkInterface; import java.util.Enumeration; public class Cpu_Mac { public static void main(String[] args) { System.out.print(getMac());...protect...
  • VB获取网卡物理地址,也就是MAC地址,网络编程必备的基础知识,通过本例子,你将掌握这一知识技巧。
  • 目前找到几篇文章关于获取本地ip地址的都是使用gethostbyname()这个函数来实现,但是当你在cmd输入ipconfig的时候就会发现gethostbyname里获取到的是一系列本地ip地址(包括虚拟机ip、ncap的ip、物理网卡ip等等),...
  • 29. * 获取unix网卡的mac地址. 30. * 非windows的系统默认调用本方法获取.如果有特殊系统请继续扩充新的取mac地址方法. 31. * @return mac地址 32. */ 33. public static String getUnixMACAddress() { 34. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 626
精华内容 250
关键字:

获取物理网卡地址