开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3980|回复: 3
收起左侧

[已回应] 精易模块 精易_网卡信息_彗星 的修改建议

[复制链接]
发表于 2019-11-12 14:54:21 | 显示全部楼层 |阅读模式   四川省宜宾市
本帖最后由 项目部004 于 2019-11-13 14:51 编辑

系统_取网卡信息_彗星版 (精易_网卡信息_彗星)  所获取网卡信息的所取得的数据要比     系统_取网卡信息  (精易_网卡信息 ) 要全面
但还有不足    系统_取网卡信息_彗星版 (精易_网卡信息_彗星)
1   网卡是否启用DHCP,不能反应出来。
2  如果网卡配置了2个IP 地址,只能取一个IP 地址,这也导致IP地址不能完整取得,也是不足。
建议修改如下:

下载.png

下载 (1).png

下载 (2).png

补充后的源代码

  
数据类型名公开备 注
精易_网卡信息_彗星 网卡信息
成员名类 型传址数组备 注
网卡名称文本型 网卡名称,值如   {61AD58AB-CA10-44FB-8DEC-D861EC0238B6}
网卡描述文本型 网卡描述  值如    Realtek PCIe GbE Family Controller
连接名称文本型 友好名称,  值如   本地连接
网卡类型n整数型    6  表示以太网卡
网卡类型文本型 网卡类型  值如:  ETHERNET
MAC地址文本型 MAC地址
IP地址文本型 IP地址
子网掩码文本型 子网掩码
网关地址文本型 网关地址
首选DNS服务器文本型 首选DNS服务器
备用DNS服务器文本型 备用DNS服务器
DhcpEnabled逻辑型 是否启用DHCP

子程序名返回值类型公开备 注
系统_取网卡信息_彗星版整数型 获取网卡的IP地址、MAC等信息。By:邓学彬(泪闯天涯)
参数名类 型参考可空数组备 注
网卡信息数组精易_网卡信息_彗星
变量名类 型静态数组备 注
MapListNetworkCardMapName0
AdapterInfoIP_ADAPTER_INFO_彗星 
BufBin字节集 
pAda整数型 
nSize整数型 
nBufLen整数型 
nResult整数型 
pAddr整数型 
ipAddrIP_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)  ' //网卡类型
' //取出MAC地址
Card.MAC地址 = “”
局_总数 = AdapterInfo.AddressLength
计次循环首 (局_总数, i)
. ' 如果真 (i > 1)
' Card.MAC地址 = Card.MAC地址 + “-”
. ' 如果真 (AdapterInfo.Address [ i ] ≤ 16)
' Card.MAC地址 = Card.MAC地址 + “0”
' Card.MAC地址 = Card.MAC地址 + 取十六进制文本 (AdapterInfo.Address [ i ])
局_mac = 取十六进制文本 (AdapterInfo.Address [ i ])
如果 (i ≠ 局_总数)
Card.MAC地址 = Card.MAC地址 + 选择 (取文本长度 (局_mac) = 1, “0” + 局_mac, 局_mac)“-”
Card.MAC地址 = Card.MAC地址 + 选择 (取文本长度 (局_mac) = 1, “0” + 局_mac, 局_mac)

计次循环尾 ()
' //取出IP地址和子网掩码
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)
' //取出DNS服务器
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
判断循环尾 ()

' //--------------------------------------------------
返回 (取数组成员数 (网卡信息数组))
发表于 2019-11-22 09:30:09 | 显示全部楼层   广东省揭阳市

系统_取网卡信息_彗星版 接收的是一个数组变量,IP地址和子网掩码都有返回的!是否启用DHCP 可以考虑添加!
回复 支持 反对

使用道具 举报

结帖率:8% (1/13)

签到天数: 1 天

发表于 2019-11-19 16:29:32 | 显示全部楼层   河南省郑州市
看不懂啊  呵呵呵!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表