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) .計次循環尾 () |
運行結果:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接