易語言調用api獲取網卡信息網絡連接名的代碼

今天小編就爲大家分享一篇關於易語言調用api獲取網卡信息網絡連接名的代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

DLL命令表

.版本 2
.DLL命令 GetAdaptersInfo, 整數型, "IPHlpApi"
  .參數 IpAdapterInfo, 字節集
  .參數 pOutBufLen, 整數型, 傳址
.DLL命令 取變量地址_字節集, 整數型, , "lstrcpynA"
  .參數 變量, 字節集, 傳址
  .參數 變量, 字節集, 傳址
  .參數 保留, 整數型, , 0
.DLL命令 CopyMemory_iai, , "kernel32", "RtlMoveMemory"
  .參數 Destination, IP_ADAPTER_INFO, 傳址
  .參數 Source, 整數型
  .參數 Length, 整數型
.DLL命令 CopyMemory_ias, , "kernel32", "RtlMoveMemory"
  .參數 Destination, IP_ADDR_STRING, 傳址
  .參數 Source, IP_ADDR_STRING
  .參數 Length, 整數型
.DLL命令 GetPerAdapterInfo, 整數型, "IPHlpApi"
  .參數 IfIndex, 整數型
  .參數 pPerAdapterInfo, 字節集
  .參數 pOutBufLen, 整數型, 傳址
.DLL命令 CopyMemory_ipai, , "kernel32", "RtlMoveMemory"
  .參數 Destination, IP_PER_ADAPTER_INFO, 傳址
  .參數 Source, 整數型
  .參數 Length, 整數型

自定義數據類型表

.版本 2
.數據類型 IP_ADAPTER_INFO
  .成員 Next, 整數型
  .成員 ComboIndex, 整數型
  .成員 AdapterName, 字節型, , "260", 名稱
  .成員 Description, 字節型, , "132", 描述
  .成員 AddressLength, 整數型
  .成員 Address, 字節型, , "8"
  .成員 Index, 整數型
  .成員 Type, 整數型, , , 類型
  .成員 DhcpEnabled, 整數型
  .成員 CurrentIpAddress, 整數型
  .成員 IpAddressList, IP_ADDR_STRING
  .成員 GatewayList, IP_ADDR_STRING
  .成員 DhcpServer, IP_ADDR_STRING
  .成員 HaveWins, 邏輯型
  .成員 PrimaryWinsServer, IP_ADDR_STRING
  .成員 SecondaryWinsServer, IP_ADDR_STRING
  .成員 LeaseObtained, 整數型
  .成員 LeaseExpires, 整數型
.數據類型 IP_ADDR_STRING
  .成員 Next, 整數型
  .成員 IpAddress, 字節型, , "16", IP_ADDRESS_STRING
  .成員 IpMask, 字節型, , "16", IP_MASK_STRING=IP_ADDRESS_STRING
  .成員 Context, 整數型
.數據類型 網卡信息_
  .成員 名稱, 文本型
  .成員 連接名稱, 文本型
  .成員 Mac, 文本型
  .成員 Ip, 文本型
  .成員 掩碼, 文本型
  .成員 網關, 文本型
  .成員 DNS1, 文本型
  .成員 DNS2, 文本型
.數據類型 IP_PER_ADAPTER_INFO
  .成員 tmp, 整數型, , "3"
  .成員 CurrentDnsServer, IP_ADDR_STRING
  .成員 DnsServerList, IP_ADDR_STRING

取網卡信息網絡連接名的代碼

.版本 2
.程序集 窗口程序集1
.子程序 __啓動窗口_創建完畢
取網卡信息 ()
.子程序 取網卡信息
.局部變量 size_link, 整數型
.局部變量 AdapterInfo, IP_ADAPTER_INFO
.局部變量 buf_link, 字節集
.局部變量 addr_link, 整數型
.局部變量 i, 整數型
.局部變量 mac, 文本型
.局部變量 tmp, 文本型
.局部變量 buf_ip, IP_ADDR_STRING
.局部變量 link, 網卡信息_
.局部變量 size_dns, 整數型
.局部變量 dns, IP_PER_ADAPTER_INFO
.局部變量 buf_dns, 字節集
.局部變量 addr_dns, 整數型
GetAdaptersInfo ({ 0 }, size_link)
buf_link = 取空白字節集 (size_link)
addr_link = 取變量地址_字節集 (buf_link, buf_link, 0)
.如果真 (GetAdaptersInfo (buf_link, size_link) = 0)
  .循環判斷首 ()
    CopyMemory_iai (AdapterInfo, addr_link, 640)
    link.名稱 = 到文本 (AdapterInfo.Description)
    mac = “”
    .計次循環首 (AdapterInfo.AddressLength - 1, i)
      tmp = 取十六進制文本 (AdapterInfo.Address [i])
      mac = mac + 選擇 (tmp = “0”, “00”, tmp) + “-”
    .計次循環尾 ()
    mac = 取文本左邊 (mac, 取文本長度 (mac) - 1)
    link.Mac = mac
    CopyMemory_ias (buf_ip, AdapterInfo.IpAddressList, 40)
    link.Ip = 到文本 (buf_ip.IpAddress)
    link.掩碼 = 到文本 (buf_ip.IpMask)
    CopyMemory_ias (buf_ip, AdapterInfo.GatewayList, 40)
    link.網關 = 到文本 (buf_ip.IpAddress)
    link.連接名稱 = 取文本註冊項 (4, “SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\” + 到文本 (AdapterInfo.AdapterName) + “\Connection\Name”, )
    size_dns = GetPerAdapterInfo (AdapterInfo.Index, buf_dns, size_dns)
    buf_dns = 取空白字節集 (size_dns)
    addr_dns = 取變量地址_字節集 (buf_dns, buf_dns, 0)
    .如果 (GetPerAdapterInfo (AdapterInfo.Index, buf_dns, size_dns) = 0)
      CopyMemory_ipai (dns, addr_dns, 92)
      link.DNS1 = 到文本 (dns.CurrentDnsServer.IpAddress)
      link.DNS2 = 到文本 (dns.DnsServerList.IpAddress)
    .否則
      link.DNS1 = “”
      link.DNS2 = “”
    .如果結束
    網絡連接名組合框.加入項目 (link.連接名稱, )
    網絡連接名組合框.現行選中項 = i
    輸出調試文本 (link.連接名稱)
    輸出調試文本 (link.名稱)
    輸出調試文本 (link.Mac)
    輸出調試文本 (link.Ip)
    輸出調試文本 (link.掩碼)
    輸出調試文本 (link.網關)
    輸出調試文本 (link.DNS1)
    輸出調試文本 (link.DNS2)
    addr_link = AdapterInfo.Next
  .循環判斷尾 (addr_link ≠ 0)
.如果真結束

運行結果:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章