|

本帖最后由 项目部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  判断循环尾 () 返回 (取数组成员数 (网卡信息数组 )) |
|