易语言调用api枚举网卡名称并且获取信息的代码

论坛 期权论坛 脚本     
niminba   2021-5-23 04:41   2126   0

DLL命令表

.版本 2
.DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
  .参数 hModule, 整数型
  .参数 lpProcName, 文本型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
  .参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 IsBadCodePtr, 整数型, "kernel32", "IsBadCodePtr", , 确定读指针的合法性
  .参数 lpfn, 整数型
.DLL命令 LoadLibrary, 整数型, "kernel32", "LoadLibraryA", , 载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源 成功则返回库模块的句柄,零表示失败。会设置GetLastError
  .参数 lpLibFileName, 文本型, , 指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序;

常量数据表

.版本 2
.常量 ERROR_BUFFER_OVERFLOW, "111", , 111
.常量 ERROR_SUCCESS, "0", , 0L
.常量 MIB_IF_TYPE_ETHERNET, "6", , 以太网接口
.常量 MIB_IF_TYPE_FDDI, "15", , 15
.常量 MIB_IF_TYPE_LOOPBACK, "24", , 24
.常量 MIB_IF_TYPE_OTHER, "1", , 其他类型的网络接口
.常量 MIB_IF_TYPE_PPP, "23", , PPP(点到点协议)网络接口
.常量 MIB_IF_TYPE_SLIP, "28"
.常量 MIB_IF_TYPE_TOKENRING, "9"
.常量 MIB_IF_TYPE_IEEE80211, "71", , IEEE 802.11 wireless network interface
.常量 ERROR_INSUFFICIENT_BUFFER, "122", , 122

获取网卡的IP地址、MAC等信息代码

.版本 2
.程序集 网卡操作程序集
.子程序 彗星取网卡信息, 整数型, 公开, 获取网卡的IP地址、MAC等信息。
.参数 网卡信息数组, NetworkCardInfo, 参考 数组
.局部变量 MapList, NetworkCardMapName, , "0"
.局部变量 AdapterInfo, IP_ADAPTER_INFO
.局部变量 BufBin, 字节集
.局部变量 pAda, 整数型
.局部变量 nSize, 整数型
.局部变量 nBufLen, 整数型
.局部变量 nResult, 整数型
.局部变量 pAddr, 整数型
.局部变量 ipAddr, IP_ADDR_STRING
.局部变量 strTmp, 文本型
.局部变量 strMac, 文本型
.局部变量 Card, NetworkCardInfo
.局部变量 i, 整数型
清除数组 (网卡信息数组)
GetAdapterFriendlyName (MapList)
' //--------------------------------------------------
nResult = GetAdaptersInfo_Ptr (0, nBufLen)
.如果真 (nResult = #ERROR_BUFFER_OVERFLOW)
  BufBin = 取空白字节集 (nBufLen)
  pAda = GetPtr_Bin (BufBin, BufBin, 0)
  nResult = GetAdaptersInfo_Ptr (pAda, nBufLen)
  .如果真 (#ERROR_SUCCESS = nResult)
    nSize = LocalSize_IP_ADAPTER_INFO (AdapterInfo)
    .判断循环首 (pAda ≠ 0)
      CopyMemory_P2IP_ADAPTER_INFO (AdapterInfo, pAda, nSize)
      Card.strName = 到文本 (AdapterInfo.AdapterName) ' //网卡名称
      Card.strDescription = 到文本 (AdapterInfo.Description) ' //网卡描述
      Card.nType = AdapterInfo.Type ' //网卡类型
      Card.strType = GetAdapterInfoType (AdapterInfo.Type)
      ' //取出MAC地址
      Card.strMac = “”
      .计次循环首 (AdapterInfo.AddressLength - 1, i)
        .如果真 (i > 1)
          Card.strMac = Card.strMac + “-”
        .如果真结束
        .如果真 (AdapterInfo.Address [i] ≤ 16)
          Card.strMac = Card.strMac + “0”
        .如果真结束
        Card.strMac = Card.strMac + 取十六进制文本 (AdapterInfo.Address [i])
      .计次循环尾 ()
      ' //取出IP地址和子网掩码
      ipAddr = AdapterInfo.IpAddressList
      .循环判断首 ()
        Card.strIP = 到文本 (ipAddr.IpAddress)
        Card.strMask = 到文本 (ipAddr.IpMask)
        跳出循环 () ' //只取一个
        pAddr = ipAddr.Next
        .如果真 (pAddr ≠ 0)
          CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr))
        .如果真结束
      .循环判断尾 (pAddr ≠ 0)
      ' //取出
      ipAddr = AdapterInfo.GatewayList
      .循环判断首 ()
        Card.strGateway = 到文本 (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.strDNS1, Card.strDNS2)
      ' //--------------------------------------------------
      .计次循环首 (取数组成员数 (MapList), i)
        .如果真 (MapList [i].strGUID = Card.strName)
          Card.strFriendName = MapList [i].strFriendName
          跳出循环 ()
        .如果真结束
      .计次循环尾 ()
      ' //--------------------------------------------------
      加入成员 (网卡信息数组, Card)
      pAda = AdapterInfo.Next
    .判断循环尾 ()
  .如果真结束
.如果真结束4(j4(4(&#r(R2(/n_>/n_>(C/_>"o3T4(>ccccc[V4(X>[V"CFcVV4(B7st"ZrptVmt94(Gz/*B74(Gz/*sB7tVmt94(Gz/*sB7tVmt4(Gz/*s>?tVmt4(Gz/*sz/tVmt4(Gz/*q5rvtVmt4(Gz/*q%CrvtVmt@4(Gz/*sCtVmt4(Gz/*srvtVmt4(Gz/*s[%9OtVmt9L4(Gz/*sR9OtVmt9L4(Gz/&(4(3zs4(е聍顽4(4(bZj3rorZj疾疒j惚"[r'kj>惒瞒jR2zsnkn碾~r/vnN
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP