|
本帖最后由 项目部004 于 2019-11-13 14:51 编辑
系统_取网卡信息_彗星版 (精易_网卡信息_彗星) 所获取网卡信息的所取得的数据要比 系统_取网卡信息 (精易_网卡信息 ) 要全面
但还有不足 系统_取网卡信息_彗星版 (精易_网卡信息_彗星)
1 网卡是否启用DHCP,不能反应出来。
2 如果网卡配置了2个IP 地址,只能取一个IP 地址,这也导致IP地址不能完整取得,也是不足。
建议修改如下:
补充后的源代码
|
精易_网卡信息_彗星 | | |
网卡名称 | 文本型 | | | 网卡描述 | 文本型 | | | 连接名称 | 文本型 | | | 网卡类型n | 整数型 | | | 网卡类型 | 文本型 | | | MAC地址 | 文本型 | | | IP地址 | 文本型 | | | 子网掩码 | 文本型 | | | 网关地址 | 文本型 | | | 首选DNS服务器 | 文本型 | | | 备用DNS服务器 | 文本型 | | | DhcpEnabled | 逻辑型 | | |
|
系统_取网卡信息_彗星版 | 整数型 | | |
网卡信息数组 | 精易_网卡信息_彗星 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | MapList | NetworkCardMapName | | 0 | AdapterInfo | IP_ADAPTER_INFO_彗星 | | | BufBin | 字节集 | | | pAda | 整数型 | | | nSize | 整数型 | | | nBufLen | 整数型 | | | nResult | 整数型 | | | pAddr | 整数型 | | | ipAddr | IP_ADDR_STRING | | | strTmp | 文本型 | | | strMac | 文本型 | | | Card | 精易_网卡信息_彗星 | | | i | 整数型 | | | 局_mac | 文本型 | | | 局_总数 | 整数型 | | | 清除数组 (网卡信息数组 )GetAdapterFriendlyName (MapList ) nResult = GetAdaptersInfo (0, nBufLen )如果真 (nResult = #ERROR_BUFFER_OVERFLOW )BufBin = 取空白字节集 (nBufLen )pAda = GetPtr_Bin (BufBin, BufBin, 0 )nResult = GetAdaptersInfo (pAda, nBufLen )如果真 ( #ERROR_SUCCESS = nResult )nSize = LocalSize_IP_ADAPTER_INFO (AdapterInfo )判断循环首 (pAda ≠ 0 )CopyMemory_P2IP_ADAPTER_INFO (AdapterInfo, pAda, nSize )Card.网卡名称 = 到文本 (AdapterInfo.AdapterName ) Card.网卡描述 = 到文本 (AdapterInfo.Description ) Card.网卡类型n = AdapterInfo.Type Card.网卡类型 = GetAdapterInfoType (AdapterInfo.Type ) Card.MAC地址 = “”局_总数 = AdapterInfo.AddressLength 计次循环首 (局_总数, i ). .
局_mac = 取十六进制文本 (AdapterInfo.Address [ i ])如果 (i ≠ 局_总数 )Card.MAC地址 = Card.MAC地址 + 选择 (取文本长度 (局_mac ) = 1, “0” + 局_mac, 局_mac ) + “-”Card.MAC地址 = Card.MAC地址 + 选择 (取文本长度 (局_mac ) = 1, “0” + 局_mac, 局_mac )计次循环尾 () ipAddr = AdapterInfo.IpAddressList 循环判断首 ()Card.IP地址 = 选择 (Card.IP地址 ≠ “”, Card.IP地址 + “ ” + 到文本 (ipAddr.IpAddress ), 到文本 (ipAddr.IpAddress )) Card.子网掩码 = 选择 (Card.子网掩码 ≠ “”, Card.子网掩码 + “ ” + 到文本 (ipAddr.IpMask ), 到文本 (ipAddr.IpMask )) pAddr = ipAddr.Next 如果真 (pAddr ≠ 0 )CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr )) 循环判断尾 (pAddr ≠ 0 ) ipAddr = AdapterInfo.GatewayList 循环判断首 ()Card.网关地址 = 到文本 (ipAddr.IpAddress )跳出循环 () pAddr = ipAddr.Next 如果真 (pAddr ≠ 0 )CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr )) 循环判断尾 (pAddr ≠ 0 ) GetDnsServer (AdapterInfo.Index, Card.首选DNS服务器, Card.备用DNS服务器 ) 计次循环首 (取数组成员数 (MapList ), i )如果真 (MapList [ i ].strGUID = Card.网卡名称 )Card.连接名称 = MapList [ i ].strFriendName 跳出循环 ()计次循环尾 () Card.DhcpEnabled = 选择 (AdapterInfo.DhcpEnabled = 1, 真, 假)加入成员 (网卡信息数组, Card )pAda = AdapterInfo.Next 判断循环尾 () 返回 (取数组成员数 (网卡信息数组 )) |
|