一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 易語言 - 易語言調用api枚舉網卡名稱并且獲取信息的代碼

易語言調用api枚舉網卡名稱并且獲取信息的代碼

2022-02-17 19:18易語言源碼教程 易語言

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

DLL命令表

?
1
2
3
4
5
6
7
8
9
10
.版本 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參數指定的同樣的搜索順序;

常量數據表

?
1
2
3
4
5
6
7
8
9
10
11
12
.版本 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等信息代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
.版本 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
    .判斷循環尾 ()
  .如果真結束
.如果真結束
' //--------------------------------------------------
返回 (取數組成員數 (網卡信息數組))
.子程序 GetAdapterFriendlyName, , , 通過mprapi庫獲取連接名稱
.參數 MapList, NetworkCardMapName, 數組
.局部變量 hMprConfig
.局部變量 dwBufferSize
.局部變量 BufferBin, 字節集
.局部變量 plfTable, 整數型
.局部變量 FaceInfo, IP_INTERFACE_INFO
.局部變量 Adapter, IP_ADAPTER_INDEX_MAP, , "0"
.局部變量 szMapName, 字節集
.局部變量 szFriendName, 字節集
.局部變量 nSize, 整數型
.局部變量 dwRet
.局部變量 i, 整數型
.局部變量 nPos, 整數型
清除數組 (MapList)
' //-----------------------------------------------------------
dwRet = MprConfigServerConnect (0, hMprConfig) ' //獲得句柄
dwRet = GetInterfaceInfo (0, dwBufferSize) ' //獲得接口信息表大小
.如果真 (dwRet = #ERROR_INSUFFICIENT_BUFFER)
  BufferBin = 取空白字節集 (dwBufferSize)
  plfTable = GetPtr_Bin (BufferBin, BufferBin, 0)
  dwRet = GetInterfaceInfo (plfTable, dwBufferSize) ' //獲得接口信息
  nSize = LocalSize_IP_INTERFACE_INFO (FaceInfo)
  CopyMemory_P2IP_INTERFACE_INFO (FaceInfo, plfTable, nSize)
  .如果真 (FaceInfo.NumAdapters > 0)
    重定義數組 (Adapter, 假, FaceInfo.NumAdapters)
    nSize = FaceInfo.NumAdapters × LocalSize_IP_ADAPTER_INDEX_MAP (Adapter [1])
    .如果真 (nSize > dwBufferSize)
      nSize = dwBufferSize
    .如果真結束
    CopyMemory_P2IP_ADAPTER_INDEX_MAP_Array (Adapter, plfTable + 4, nSize)
    重定義數組 (MapList, 假, FaceInfo.NumAdapters)
    .計次循環首 (FaceInfo.NumAdapters, i)
      szMapName = 到字節集 (Adapter [i].Name)
      szFriendName = 取空白字節集 (256)
      MprConfigGetFriendlyName (hMprConfig, szMapName, szFriendName, 255)
      MapList [i].Index = Adapter [i].Index
      MapList [i].strMapName = W2A (szMapName)
      MapList [i].strFriendName = W2A (szFriendName)
      MapList [i].strGUID = MapList [i].strMapName
      nPos = 尋找文本 (MapList [i].strGUID, “{”, , 假)
      .如果真 (nPos ≠ -1)
        MapList [i].strGUID = 取文本右邊 (MapList [i].strGUID, 取文本長度 (MapList [i].strGUID) - nPos + 1)
      .如果真結束
    .計次循環尾 ()
  .如果真結束
.如果真結束
.子程序 GetDnsServer, 邏輯型, , 通過GetPerAdapterInfo獲取指定網卡的DNS服務器
.參數 nIndex, 整數型, , IP_ADAPTER_INFO.Index
.參數 strDNS1, 文本型, 參考, 首選DNS服務器
.參數 strDNS2, 文本型, 參考, 備用DNS服務器
.局部變量 PerAdapterInfo, IP_PER_ADAPTER_INFO
.局部變量 BufBin, 字節集
.局部變量 pAda, 整數型
.局部變量 nSize, 整數型
.局部變量 nBufLen, 整數型
.局部變量 nResult, 整數型
.局部變量 pAddr, 整數型
.局部變量 ipAddr, IP_ADDR_STRING
.局部變量 nCount, 整數型
strDNS1 = “”
strDNS2 = “”
' //--------------------------------------------------
nResult = GetPerAdapterInfo_Ptr (nIndex, 0, nBufLen)
.如果真 (nResult = #ERROR_BUFFER_OVERFLOW)
  BufBin = 取空白字節集 (nBufLen)
  pAda = GetPtr_Bin (BufBin, BufBin, 0)
  nResult = GetPerAdapterInfo_Ptr (nIndex, pAda, nBufLen)
  .如果真 (#ERROR_SUCCESS = nResult)
    nSize = LocalSize_IP_PER_ADAPTER_INFO (PerAdapterInfo)
    CopyMemory_P2IP_PER_ADAPTER_INFO (PerAdapterInfo, pAda, nSize)
    ipAddr = PerAdapterInfo.DnsServerList
    .循環判斷首 ()
      nCount = nCount + 1
      .判斷開始 (nCount = 1)
        strDNS1 = 到文本 (ipAddr.IpAddress)
      .判斷 (nCount = 2)
        strDNS2 = 到文本 (ipAddr.IpAddress)
      .默認
      .判斷結束
      pAddr = ipAddr.Next
      .如果真 (pAddr ≠ 0)
        CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr))
      .如果真結束
    .循環判斷尾 (pAddr ≠ 0)
    返回 (真)
  .如果真結束
.如果真結束
' //--------------------------------------------------
返回 (假)
.子程序 GetAdapterInfoType, 文本型
.參數 nType, 整數型
.判斷開始 (nType = #MIB_IF_TYPE_OTHER)
  返回 (“OTHER”)
.判斷 (nType = #MIB_IF_TYPE_ETHERNET)
  返回 (“ETHERNET”)
.判斷 (nType = #MIB_IF_TYPE_TOKENRING)
  返回 (“TOKENRING”)
.判斷 (nType = #MIB_IF_TYPE_FDDI)
  返回 (“FDDI”)
.判斷 (nType = #MIB_IF_TYPE_PPP)
  返回 (“PPP”)
.判斷 (nType = #MIB_IF_TYPE_LOOPBACK)
  返回 (“LOOPBACK”)
.判斷 (nType = #MIB_IF_TYPE_SLIP)
  返回 (“SLIP”)
.判斷 (nType = #MIB_IF_TYPE_IEEE80211)
  返回 (“IEEE80211”)
.默認
  返回 (到文本 (nType))
.判斷結束

初始化模塊的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.版本 2
.程序集 程序集1
.子程序 _啟動子程序, 整數型, , 請在本子程序中放置易模塊初始化代碼
載入 (窗口1, , 假)
返回 (0)
.子程序 A2W, 字節集
.參數 MultiByteStr, 文本型, 參考
.局部變量 len, 整數型
.局部變量 Returned, 字節集
len = MultiByteToWideChar (0, 0, MultiByteStr, -1, { }, 0)
Returned = 取空白字節集 ((len + 1) × 2)
MultiByteToWideChar (0, 0, MultiByteStr, -1, Returned, 取字節集長度 (Returned))
返回 (Returned)
.子程序 W2A, 文本型
.參數 CharStr, 字節集
.局部變量 len, 整數型
.局部變量 Returned, 文本型
len = WideCharToMultiByte (1, 0, CharStr, -1, 字符 (0), 0, 字符 (0), 假)
Returned = 取空白文本 (len)
WideCharToMultiByte (1, 0, CharStr, -1, Returned, 取文本長度 (Returned), 字符 (0), 假)
返回 (Returned)

取網卡信息的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.版本 2
.支持庫 iext
.程序集 窗口程序集_窗口1
.子程序 _窗口1_創建完畢
.局部變量 網卡信息數組, NetworkCardInfo, , "0"
.局部變量 網卡數量, 整數型
.局部變量 網卡名稱, 文本型
.局部變量 i, 整數型
.局部變量 x, 整數型
樹型框1.清空 ()
網卡數量 = 彗星取網卡信息 (網卡信息數組)
.計次循環首 (取數組成員數 (網卡信息數組), i)
  網卡名稱 = “網卡” + 到文本 (i) + “ ” + 網卡信息數組 [i].strFriendName
  x = 樹型框1.加入項目 (-1, 網卡名稱, 0, 0, , , )
  樹型框1.加入項目 (x, “連接名稱:” + 網卡信息數組 [i].strFriendName, , , , , )
  樹型框1.加入項目 (x, “網卡名稱:” + 網卡信息數組 [i].strName, , , , , )
  樹型框1.加入項目 (x, “網卡描述:” + 網卡信息數組 [i].strDescription, , , , , )
  樹型框1.加入項目 (x, “網卡類型:” + 網卡信息數組 [i].strType, , , , , )
  樹型框1.加入項目 (x, “MAC地址:” + 網卡信息數組 [i].strMac, , , , , )
  樹型框1.加入項目 (x, “IP地址:” + 網卡信息數組 [i].strIP, , , , , )
  樹型框1.加入項目 (x, “子網掩碼:” + 網卡信息數組 [i].strMask, , , , , )
  樹型框1.加入項目 (x, “網關地址:” + 網卡信息數組 [i].strGateway, , , , , )
  樹型框1.加入項目 (x, “首選DNS:” + 網卡信息數組 [i].strDNS1, , , , , )
  樹型框1.加入項目 (x, “備用DNS:” + 網卡信息數組 [i].strDNS2, , , , , )
  樹型框1.擴展 (x)
.計次循環尾 ()

運行結果:

易語言調用api枚舉網卡名稱并且獲取信息的代碼

總結

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

延伸 · 閱讀

精彩推薦
  • 易語言易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏

    易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏

    今天小編就為大家分享一篇關于易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,...

    易語言幫助手冊9092022-01-12
  • 易語言易語言生成exe文件的方法

    易語言生成exe文件的方法

    在本篇內容中小編給大家分享的是關于易語言生成exe文件的方法知識點,需要的朋友們參考下。...

    易語言教程網14792022-03-01
  • 易語言易語言關于程序進程和線程的基礎知識

    易語言關于程序進程和線程的基礎知識

    今天小編就為大家分享一篇關于易語言關于程序進程和線程的基礎知識,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起...

    三葉資源網6662022-02-24
  • 易語言實例操作易語言載入窗口

    實例操作易語言載入窗口

    在本文中小編給大家整理的是關于易語言載入窗口的教程和步驟內容,需要的可以跟著學習下...

    易語言教程網19162022-03-02
  • 易語言一步一步跟我學易語言之第二個易程序菜單設計

    一步一步跟我學易語言之第二個易程序菜單設計

    今天小編就為大家分享一篇關于的一步一步跟我學易語言之第二個易程序菜單設計,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要...

    易語言幫助手冊7092021-06-17
  • 易語言一步一步跟我學易語言之關于變量

    一步一步跟我學易語言之關于變量

    今天小編就為大家分享一篇關于一步一步跟我學易語言之關于變量,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨...

    易語言幫助手冊10822021-06-17
  • 易語言易語言設置進度條邊框樣式的方法

    易語言設置進度條邊框樣式的方法

    今天小編就為大家分享一篇關于易語言設置進度條邊框樣式的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨...

    易語言幫助手冊4422022-01-20
  • 易語言易語言獲取指定磁盤的名稱

    易語言獲取指定磁盤的名稱

    今天小編就為大家分享一篇關于易語言獲取指定磁盤的名稱,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來...

    易語言幫助手冊12662022-01-04
主站蜘蛛池模板: 欧美洲大黑香蕉在线视频 | 国产综合亚洲专区在线 | 黑人粗长巨茎小说 | 2022国产麻豆剧传媒古装 | aⅴ视频在线免播放观看 | 国产性色视频 | h肉动漫在线视频无修无遮挡 | 999任你躁在线精品免费不卡 | 欧美s级人做人爱c视频 | 三级无删减高清在线影院 | 7777色鬼xxxx欧美色夫 | 超碰97| 欧美一区二区三区免费不卡 | 国产老村长足疗店对白 | gayrb免费漫画入口 | 图片亚洲va欧美va国产综合 | 亚洲一区二区三区福利在线 | 香港论理午夜电影网 | 亚洲看片lutube在线入口 | 美女奶口隐私免费视频网站 | 停停色| 国产精品露脸国语对白99 | 国产成+人+亚洲+欧美综合 | 男人和女人全黄一级毛片 | blacked太粗太长 | 欧美一级高清免费a | 婷婷天天 | 视频免费在线 | 99久久中文字幕伊人 | 成人私人影院在线观看网址 | 男女做污事 | 四虎影视色费永久在线观看 | 97理伦 | 香蕉精品国产高清自在自线 | 免费看日产一区二区三区 | 微福利92合集 | 国产综合社区 | 乌克兰bbw | 国内精品久久久久影院网站 | 亚洲AV无码国产精品色午夜情 | 日本小视频免费 |