DLL命令表
1
2
3
4
5
6
7
8
9
10
|
.版本 2 .DLL命令 GetProcAddress, 整數(shù)型, "kernel32", "GetProcAddress", , 返回函數(shù)地址 .參數(shù) hModule, 整數(shù)型 .參數(shù) lpProcName, 文本型 .DLL命令 GetModuleHandle, 整數(shù)型, "kernel32", "GetModuleHandleA", , 獲取一個應(yīng)用程序或動態(tài)鏈接庫的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會設(shè)置GetLastError .參數(shù) lpModuleName, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD; .DLL命令 IsBadCodePtr, 整數(shù)型, "kernel32", "IsBadCodePtr", , 確定讀指針的合法性 .參數(shù) lpfn, 整數(shù)型 .DLL命令 LoadLibrary, 整數(shù)型, "kernel32", "LoadLibraryA", , 載入指定的動態(tài)鏈接庫,并將它映射到當(dāng)前進(jìn)程使用的地址空間。一旦載入,即可訪問庫內(nèi)保存的資源 成功則返回庫模塊的句柄,零表示失敗。會設(shè)置GetLastError .參數(shù) lpLibFileName, 文本型, , 指定要載入的動態(tài)鏈接庫的名稱。采用與CreateProcess函數(shù)的lpCommandLine參數(shù)指定的同樣的搜索順序; |
常量數(shù)據(jù)表
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", , 以太網(wǎng)接口 .常量 MIB_IF_TYPE_FDDI, "15", , 15 .常量 MIB_IF_TYPE_LOOPBACK, "24", , 24 .常量 MIB_IF_TYPE_OTHER, "1", , 其他類型的網(wǎng)絡(luò)接口 .常量 MIB_IF_TYPE_PPP, "23", , PPP(點(diǎn)到點(diǎn)協(xié)議)網(wǎng)絡(luò)接口 .常量 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 |
獲取網(wǎng)卡的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 .程序集 網(wǎng)卡操作程序集 .子程序 彗星取網(wǎng)卡信息, 整數(shù)型, 公開, 獲取網(wǎng)卡的IP地址、MAC等信息。 .參數(shù) 網(wǎng)卡信息數(shù)組, NetworkCardInfo, 參考 數(shù)組 .局部變量 MapList, NetworkCardMapName, , "0" .局部變量 AdapterInfo, IP_ADAPTER_INFO .局部變量 BufBin, 字節(jié)集 .局部變量 pAda, 整數(shù)型 .局部變量 nSize, 整數(shù)型 .局部變量 nBufLen, 整數(shù)型 .局部變量 nResult, 整數(shù)型 .局部變量 pAddr, 整數(shù)型 .局部變量 ipAddr, IP_ADDR_STRING .局部變量 strTmp, 文本型 .局部變量 strMac, 文本型 .局部變量 Card, NetworkCardInfo .局部變量 i, 整數(shù)型 清除數(shù)組 (網(wǎng)卡信息數(shù)組) GetAdapterFriendlyName (MapList) ' //-------------------------------------------------- nResult = GetAdaptersInfo_Ptr (0, nBufLen) .如果真 (nResult = #ERROR_BUFFER_OVERFLOW) BufBin = 取空白字節(jié)集 (nBufLen) pAda = GetPtr_Bin (BufBin, BufBin, 0) nResult = GetAdaptersInfo_Ptr (pAda, nBufLen) .如果真 (#ERROR_SUCCESS = nResult) nSize = LocalSize_IP_ADAPTER_INFO (AdapterInfo) .判斷循環(huán)首 (pAda ≠ 0) CopyMemory_P2IP_ADAPTER_INFO (AdapterInfo, pAda, nSize) Card.strName = 到文本 (AdapterInfo.AdapterName) ' //網(wǎng)卡名稱 Card.strDescription = 到文本 (AdapterInfo.Description) ' //網(wǎng)卡描述 Card.nType = AdapterInfo.Type ' //網(wǎng)卡類型 Card.strType = GetAdapterInfoType (AdapterInfo.Type) ' //取出MAC地址 Card.strMac = “” .計次循環(huán)首 (AdapterInfo.AddressLength - 1, i) .如果真 (i > 1) Card.strMac = Card.strMac + “-” .如果真結(jié)束 .如果真 (AdapterInfo.Address [i] ≤ 16) Card.strMac = Card.strMac + “0” .如果真結(jié)束 Card.strMac = Card.strMac + 取十六進(jìn)制文本 (AdapterInfo.Address [i]) .計次循環(huán)尾 () ' //取出IP地址和子網(wǎng)掩碼 ipAddr = AdapterInfo.IpAddressList .循環(huán)判斷首 () Card.strIP = 到文本 (ipAddr.IpAddress) Card.strMask = 到文本 (ipAddr.IpMask) 跳出循環(huán) () ' //只取一個 pAddr = ipAddr.Next .如果真 (pAddr ≠ 0) CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr)) .如果真結(jié)束 .循環(huán)判斷尾 (pAddr ≠ 0) ' //取出 ipAddr = AdapterInfo.GatewayList .循環(huán)判斷首 () Card.strGateway = 到文本 (ipAddr.IpAddress) 跳出循環(huán) () pAddr = ipAddr.Next .如果真 (pAddr ≠ 0) CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr)) .如果真結(jié)束 .循環(huán)判斷尾 (pAddr ≠ 0) ' //取出DNS服務(wù)器 GetDnsServer (AdapterInfo.Index, Card.strDNS1, Card.strDNS2) ' //-------------------------------------------------- .計次循環(huán)首 (取數(shù)組成員數(shù) (MapList), i) .如果真 (MapList [i].strGUID = Card.strName) Card.strFriendName = MapList [i].strFriendName 跳出循環(huán) () .如果真結(jié)束 .計次循環(huán)尾 () ' //-------------------------------------------------- 加入成員 (網(wǎng)卡信息數(shù)組, Card) pAda = AdapterInfo.Next .判斷循環(huán)尾 () .如果真結(jié)束 .如果真結(jié)束 ' //-------------------------------------------------- 返回 (取數(shù)組成員數(shù) (網(wǎng)卡信息數(shù)組)) .子程序 GetAdapterFriendlyName, , , 通過mprapi庫獲取連接名稱 .參數(shù) MapList, NetworkCardMapName, 數(shù)組 .局部變量 hMprConfig .局部變量 dwBufferSize .局部變量 BufferBin, 字節(jié)集 .局部變量 plfTable, 整數(shù)型 .局部變量 FaceInfo, IP_INTERFACE_INFO .局部變量 Adapter, IP_ADAPTER_INDEX_MAP, , "0" .局部變量 szMapName, 字節(jié)集 .局部變量 szFriendName, 字節(jié)集 .局部變量 nSize, 整數(shù)型 .局部變量 dwRet .局部變量 i, 整數(shù)型 .局部變量 nPos, 整數(shù)型 清除數(shù)組 (MapList) ' //----------------------------------------------------------- dwRet = MprConfigServerConnect (0, hMprConfig) ' //獲得句柄 dwRet = GetInterfaceInfo (0, dwBufferSize) ' //獲得接口信息表大小 .如果真 (dwRet = #ERROR_INSUFFICIENT_BUFFER) BufferBin = 取空白字節(jié)集 (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) 重定義數(shù)組 (Adapter, 假, FaceInfo.NumAdapters) nSize = FaceInfo.NumAdapters × LocalSize_IP_ADAPTER_INDEX_MAP (Adapter [1]) .如果真 (nSize > dwBufferSize) nSize = dwBufferSize .如果真結(jié)束 CopyMemory_P2IP_ADAPTER_INDEX_MAP_Array (Adapter, plfTable + 4, nSize) 重定義數(shù)組 (MapList, 假, FaceInfo.NumAdapters) .計次循環(huán)首 (FaceInfo.NumAdapters, i) szMapName = 到字節(jié)集 (Adapter [i].Name) szFriendName = 取空白字節(jié)集 (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) .如果真結(jié)束 .計次循環(huán)尾 () .如果真結(jié)束 .如果真結(jié)束 .子程序 GetDnsServer, 邏輯型, , 通過GetPerAdapterInfo獲取指定網(wǎng)卡的DNS服務(wù)器 .參數(shù) nIndex, 整數(shù)型, , IP_ADAPTER_INFO.Index .參數(shù) strDNS1, 文本型, 參考, 首選DNS服務(wù)器 .參數(shù) strDNS2, 文本型, 參考, 備用DNS服務(wù)器 .局部變量 PerAdapterInfo, IP_PER_ADAPTER_INFO .局部變量 BufBin, 字節(jié)集 .局部變量 pAda, 整數(shù)型 .局部變量 nSize, 整數(shù)型 .局部變量 nBufLen, 整數(shù)型 .局部變量 nResult, 整數(shù)型 .局部變量 pAddr, 整數(shù)型 .局部變量 ipAddr, IP_ADDR_STRING .局部變量 nCount, 整數(shù)型 strDNS1 = “” strDNS2 = “” ' //-------------------------------------------------- nResult = GetPerAdapterInfo_Ptr (nIndex, 0, nBufLen) .如果真 (nResult = #ERROR_BUFFER_OVERFLOW) BufBin = 取空白字節(jié)集 (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 .循環(huán)判斷首 () nCount = nCount + 1 .判斷開始 (nCount = 1) strDNS1 = 到文本 (ipAddr.IpAddress) .判斷 (nCount = 2) strDNS2 = 到文本 (ipAddr.IpAddress) .默認(rèn) .判斷結(jié)束 pAddr = ipAddr.Next .如果真 (pAddr ≠ 0) CopyMemory_IP_ADDR_STRING (ipAddr, pAddr, LocalSize_IP_ADDR_STRING (ipAddr)) .如果真結(jié)束 .循環(huán)判斷尾 (pAddr ≠ 0) 返回 (真) .如果真結(jié)束 .如果真結(jié)束 ' //-------------------------------------------------- 返回 (假) .子程序 GetAdapterInfoType, 文本型 .參數(shù) nType, 整數(shù)型 .判斷開始 (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”) .默認(rèn) 返回 (到文本 (nType)) .判斷結(jié)束 |
初始化模塊的代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
.版本 2 .程序集 程序集1 .子程序 _啟動子程序, 整數(shù)型, , 請在本子程序中放置易模塊初始化代碼 載入 (窗口1, , 假) 返回 (0) .子程序 A2W, 字節(jié)集 .參數(shù) MultiByteStr, 文本型, 參考 .局部變量 len, 整數(shù)型 .局部變量 Returned, 字節(jié)集 len = MultiByteToWideChar (0, 0, MultiByteStr, -1, { }, 0) Returned = 取空白字節(jié)集 ((len + 1) × 2) MultiByteToWideChar (0, 0, MultiByteStr, -1, Returned, 取字節(jié)集長度 (Returned)) 返回 (Returned) .子程序 W2A, 文本型 .參數(shù) CharStr, 字節(jié)集 .局部變量 len, 整數(shù)型 .局部變量 Returned, 文本型 len = WideCharToMultiByte (1, 0, CharStr, -1, 字符 (0), 0, 字符 (0), 假) Returned = 取空白文本 (len) WideCharToMultiByte (1, 0, CharStr, -1, Returned, 取文本長度 (Returned), 字符 (0), 假) 返回 (Returned) |
取網(wǎng)卡信息的代碼
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_創(chuàng)建完畢 .局部變量 網(wǎng)卡信息數(shù)組, NetworkCardInfo, , "0" .局部變量 網(wǎng)卡數(shù)量, 整數(shù)型 .局部變量 網(wǎng)卡名稱, 文本型 .局部變量 i, 整數(shù)型 .局部變量 x, 整數(shù)型 樹型框1.清空 () 網(wǎng)卡數(shù)量 = 彗星取網(wǎng)卡信息 (網(wǎng)卡信息數(shù)組) .計次循環(huán)首 (取數(shù)組成員數(shù) (網(wǎng)卡信息數(shù)組), i) 網(wǎng)卡名稱 = “網(wǎng)卡” + 到文本 (i) + “ ” + 網(wǎng)卡信息數(shù)組 [i].strFriendName x = 樹型框1.加入項目 (-1, 網(wǎng)卡名稱, 0, 0, , , ) 樹型框1.加入項目 (x, “連接名稱:” + 網(wǎng)卡信息數(shù)組 [i].strFriendName, , , , , ) 樹型框1.加入項目 (x, “網(wǎng)卡名稱:” + 網(wǎng)卡信息數(shù)組 [i].strName, , , , , ) 樹型框1.加入項目 (x, “網(wǎng)卡描述:” + 網(wǎng)卡信息數(shù)組 [i].strDescription, , , , , ) 樹型框1.加入項目 (x, “網(wǎng)卡類型:” + 網(wǎng)卡信息數(shù)組 [i].strType, , , , , ) 樹型框1.加入項目 (x, “MAC地址:” + 網(wǎng)卡信息數(shù)組 [i].strMac, , , , , ) 樹型框1.加入項目 (x, “IP地址:” + 網(wǎng)卡信息數(shù)組 [i].strIP, , , , , ) 樹型框1.加入項目 (x, “子網(wǎng)掩碼:” + 網(wǎng)卡信息數(shù)組 [i].strMask, , , , , ) 樹型框1.加入項目 (x, “網(wǎng)關(guān)地址:” + 網(wǎng)卡信息數(shù)組 [i].strGateway, , , , , ) 樹型框1.加入項目 (x, “首選DNS:” + 網(wǎng)卡信息數(shù)組 [i].strDNS1, , , , , ) 樹型框1.加入項目 (x, “備用DNS:” + 網(wǎng)卡信息數(shù)組 [i].strDNS2, , , , , ) 樹型框1.擴(kuò)展 (x) .計次循環(huán)尾 () |
運(yùn)行結(jié)果:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接