999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB編程實現(xiàn)微機(jī)的網(wǎng)絡(luò)遠(yuǎn)程喚醒

2010-04-12 00:00:00曹淑華
現(xiàn)代電子技術(shù) 2010年14期

摘 要:網(wǎng)絡(luò)遠(yuǎn)程喚醒對網(wǎng)絡(luò)管理來說是一項具有實用性的技術(shù)。遠(yuǎn)程喚醒的方法也多種多樣,在VB編程過程中,Winsock控件具有通過傳輸層協(xié)議進(jìn)行微機(jī)的遠(yuǎn)程通信功能。根據(jù)Winsock控件能夠發(fā)送帶有該網(wǎng)卡MAC地址的喚醒數(shù)據(jù)包的特點,利用VB編程的方法,開發(fā)出實現(xiàn)微機(jī)網(wǎng)絡(luò)遠(yuǎn)程喚醒的程序,以實現(xiàn)網(wǎng)絡(luò)管理功能。

關(guān)鍵詞:VB編程;Winsock控件;MAC地址; 遠(yuǎn)程喚醒

中圖分類號:TN919; TP316.7 文獻(xiàn)標(biāo)識碼:A 文章編號:1004-373X(2010)14-0061-03

Wake-on-LAN by VB Programming

CAO Shu-hua

(Information Engineering Institute, Chang’an University, Xi’an 710064, China)

Abstract: The wake-on-LAN is a very practical technology for the network management. There are many ways for the wake-on-LAN, Winsock can carry out long-range PC communication by using transfer-layer agreements in the process of VB programming. Because of that Winsock control can send the wake-up packet with MAC address, a program of achieving wake-on-LAN of microcomputers was developed by VB programming to realize the network management.

Keywords: VB Programming; Winsock control; MAC address; wake-on-LAN

0 引 言

網(wǎng)絡(luò)遠(yuǎn)程喚醒技術(shù)(wake-on-LAN,WOL)是一項由計算機(jī)硬件提供支持的,通過給網(wǎng)卡發(fā)送特定數(shù)據(jù)包從而命令網(wǎng)卡向主板發(fā)送開機(jī)指令的管理技術(shù)。它可以讓微機(jī)使用人員遠(yuǎn)程喚醒計算機(jī),并使它們自動完成一些管理服務(wù)[1]。

實現(xiàn)遠(yuǎn)程喚醒的硬件條件:網(wǎng)卡、主板、電源都要支持網(wǎng)絡(luò)遠(yuǎn)程喚醒[2]。

網(wǎng)絡(luò)管理人員經(jīng)常需要遠(yuǎn)程喚醒多臺微機(jī)進(jìn)行管理。網(wǎng)絡(luò)遠(yuǎn)程喚醒的方法也各有不同,通過VC,Delphi語言編程都可以實現(xiàn)遠(yuǎn)程喚醒,本文通過VB語言編程實現(xiàn)微機(jī)的網(wǎng)絡(luò)遠(yuǎn)程喚醒。由于VB語言的普及程度更高,語句更易被理解。因此VB編程實現(xiàn)網(wǎng)絡(luò)的遠(yuǎn)程喚醒程序更易根據(jù)客戶需要進(jìn)行修改和使用。

1 VB實現(xiàn)微機(jī)的網(wǎng)絡(luò)遠(yuǎn)程喚醒的原理

由于通過網(wǎng)絡(luò)遠(yuǎn)程喚醒的計算機(jī)處于關(guān)機(jī)狀態(tài),所以不可能通過IP地址和計算機(jī)名等進(jìn)行區(qū)別。但是每塊網(wǎng)卡都擁有惟一的MAC地址,網(wǎng)卡的MAC地址是識別計算機(jī)的惟一定位信息。知道被喚醒計算機(jī)網(wǎng)卡的MAC地址后,在本地計算機(jī)上運行遠(yuǎn)程喚醒軟件,向網(wǎng)絡(luò)中發(fā)送帶有該網(wǎng)卡MAC地址的喚醒數(shù)據(jù)包。這時,被喚醒計算機(jī)雖然處于關(guān)機(jī)狀態(tài),但其網(wǎng)卡控制芯片卻能利用三芯連接線從主板上送來的電流(這是因為ATX電源雖然關(guān)閉了,但并沒有切斷主板上所有電源的供給),接收和處理網(wǎng)絡(luò)上傳來的信息包。控制芯片通過檢查數(shù)據(jù)包中的地址信息,可以確認(rèn)自己是否為該數(shù)據(jù)包的合法接收者。如果確認(rèn)是合法接收者,則通過三芯連線向計算機(jī)發(fā)出開機(jī)信號,引導(dǎo)主板開啟計算機(jī)的電源并執(zhí)行相應(yīng)的程序。

下面敘述VB編程設(shè)計網(wǎng)絡(luò)遠(yuǎn)程喚醒軟件。它是一個通過網(wǎng)卡MAC地址遠(yuǎn)程喚醒計算機(jī)的軟件,并支持群集網(wǎng)絡(luò)遠(yuǎn)程喚醒。

2 部分程序代碼

(1) 獲取微機(jī)MAC地址的程序

獲取本地計算機(jī)的MAC地址方法很多,最原始的方法是直接從網(wǎng)卡的說明書上獲取,但這不一定準(zhǔn)確,還可通過在計算機(jī)上運行winipcfg.exe或ipconfig.exe等工具軟件來獲取[3]。下面是用VB編程實現(xiàn)獲取MAC地址的源程序[4-5]:

Private Function EthernetAddress(LanaNumber As Long) As String

Dim udtNCBAs NCB

Dim bytResponse As Byte

Dim udtASTAT As ASTAT

Dim udtTempASTAT As ASTAT

Dim lngASTAT As Long

Dim strOutAs String

Dim xAs Integer

udtNCB.ncb_command = NCBRESET

bytResponse = Netbios(udtNCB)

udtNCB.ncb_command = NCBASTAT

udtNCB.ncb_lana_num = LanaNumber

udtNCB.ncb_callname = \"* \"

udtNCB.ncb_length = Len(udtASTAT)

lngASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, udtNCB.ncb_length)

strOut = \"\"

If lngASTAT Then

udtNCB.ncb_buffer = lngASTAT

bytResponse = Netbios(udtNCB)

CopyMemory udtASTAT, udtNCB.ncb_buffer, Len(udtASTAT)

With udtASTAT.adapt

For x = 0 To 5

strOut = strOut RightMYM(\"00\" HexMYM(.adapter_address(x)), 2)

Next x

End With

HeapFree GetProcessHeap(), 0, lngASTAT

End If

EthernetAddress = strOut

End Function

Private Sub CmdClose_Click()

End

End Sub

Private Sub Form_Load()

Text1 = \"這臺機(jī)器的MAC地址是:\" EthernetAddress(0)

(2) 從另一臺計算機(jī)通過獲取的網(wǎng)卡MAC地址遠(yuǎn)程喚醒該計算機(jī)

獲得網(wǎng)絡(luò)上所有機(jī)器的MAC地址之后,還必須把這些地址提供給腳本。利用一個獨立的文件保存MAC地址信息是較好的選擇。使用獨立的文件意味著不必把這些信息直接編寫到腳本代碼里面,從而使代碼具有更好的可移植性、更少出錯機(jī)會。總之,編寫腳本代碼時應(yīng)當(dāng)養(yǎng)成良好的習(xí)慣,腳本的主要輸入數(shù)據(jù)應(yīng)當(dāng)來自腳本之外,而不是嵌入腳本代碼之中。

以下是用VB編程實現(xiàn)微機(jī)遠(yuǎn)程喚醒的源程序[6-9]:

Sub picmov()

Select Case Picture1.Left

Case 3600

Picture1.Left = 3650

wait 500

Case 3650

Picture1.Left = 3600

wait 250

End Select

DoEvents

End Sub

Private Sub Command1_Click(Index As Integer)

AbortThis = False

NumOfCounts = Text1.Text

Picture1.Visible = True

Adet = Text1.Text

Command1(Index).Enabled = False

Dim sHostName As String

Dim data As String

Dim MacAdd As String

Dim IPAddress As String

Winsock2.Protocol = sckUDPProtocol

Winsock2.RemoteHost = \"255.255.255.255\"

Winsock2.RemotePort = \"4000\"

If Index = 1 Then

For say = 0 To List1.ListCount - 1

List1.ListIndex = say

MacAdd = List1.List(say)

data = \"FFFFFFFFFFFF\"

For i = 1 To 16

data = data MacAdd

Next i

data = hex2ascii(data)

For t = 1 To Adet

Text2.Text = \"正在呼叫喚醒 \" MacAdd

′取消按鈕

If AbortThis Then GoTo Aborted

Winsock2.SendData data

picmov

Winsock2.Close

picmov

Text1.Text = t

DoEvents

Next

Next

Else

MacAdd = txtmac.Text

data = \"FFFFFFFFFFFF\"

For i = 1 To 16

data = data MacAdd

Next i

data = hex2ascii(data)

For t = 1 To Adet

Text2.Text = \"正在呼叫喚醒 \" MacAdd

′取消

If AbortThis Then GoTo Aborted

Winsock2.SendData data

picmov

Winsock2.Close

picmov

Text1.Text = t

DoEvents

Next

End If

End Sub

Public Sub wait(ByVal dblMilliseconds As Double)

Dim dblStart As Double

Dim dblEnd As Double

Dim dblTickCount As Double

dblTickCount = GetTickCount()

dblStart = GetTickCount()

dblEnd = GetTickCount + dblMilliseconds

Do

DoEvents

dblTickCount = GetTickCount()

Loop Until dblTickCount > dblEnd Or dblTickCount

End Sub

′提取MAC地址,Macs.txt為腳本文件

Private Sub Form_Load()

Dim Mac

allmacs = ReadMacs(App.Path \"/Macs.txt\")

Mac = Split(allmacs, \",\")

ReDim PCs(UBound(Mac))

For t = 0 To UBound(Mac)

SpltP = (InStr(Mac(t), \":\"))

If SpltP > 0 Then

PCs(t) = RightMYM(Mac(t),

Len(Mac(t)) - SpltP)

Mac(t) = MidMYM(Mac(t), 1, SpltP - 1)

Else

PCs(t) = \"N/A\"

End If

List1.AddItem Mac(t)

Next

End Sub

Private Sub List1_Click()

txtmac.Text = List1.List(List1.ListIndex)

Text3.Text = PCs(List1.ListIndex)

End Sub

3 使用方法

第一步獲取微機(jī)MAC地址程序運行后得到的結(jié)果,如圖1所示。

圖1 程序運行結(jié)果(一)

第二步通過MAC地址遠(yuǎn)程喚醒微機(jī)程序運行后得到的結(jié)果,如圖2所示。

通過第一步、第二步程序的運行,可以遠(yuǎn)程喚醒1臺或多臺微機(jī)。程序中使用的MAC地址是在局域網(wǎng)中獲取的,并在局域網(wǎng)中遠(yuǎn)程喚醒微機(jī)取得成功。如果需要通過互聯(lián)網(wǎng)遠(yuǎn)程喚醒微機(jī)還需做進(jìn)一步修改和調(diào)試。

圖2 程序運行結(jié)果(二)

4 結(jié) 語

主要介紹了遠(yuǎn)程喚醒技術(shù)基本原理、實現(xiàn)遠(yuǎn)程喚醒所需的軟硬件條件,并給出局域網(wǎng)內(nèi)基于VB的遠(yuǎn)程喚醒程序的VB編程主要代碼。遠(yuǎn)程喚醒技術(shù)十分方便、實用,大大節(jié)省微機(jī)管理員的時間和提高工作效率,特別在微機(jī)機(jī)房的管理中得到廣泛的應(yīng)用[10]。實現(xiàn)微機(jī)遠(yuǎn)程喚醒方法有很多,本文從VB編程設(shè)計角度加以研究、討論。對于廣域網(wǎng)上的遠(yuǎn)程喚醒的方法還有待于更深層次的研究與討論。

參考文獻(xiàn)

[1]周文龍.跨網(wǎng)段遠(yuǎn)程網(wǎng)絡(luò)喚醒計算機(jī)的實現(xiàn)[ J] .中國科技博覽,2009(14):193,78.

[2]李金剛,劉春芳.局域網(wǎng)內(nèi)遠(yuǎn)程喚醒多臺計算機(jī)的實現(xiàn)[ J] .福建電腦,2006(8):185-196.

[3]馬鵬衛(wèi),拓守恒.網(wǎng)卡遠(yuǎn)程喚醒的實現(xiàn)[ J] .科技資訊,2006(8):94-95.

[4]寧正元,潘曉文,蔣萌輝,等.Visual Basic程序設(shè)計教程[M].北京:清華大學(xué)出版社,2004.

[5]徐爾貴.VISUAL BASIC 6.0教程[M].北京:電子工業(yè)出版社,2001.

[6]宋偉,吳建國.Visual Basic 6.0高級編程[M].北京:清華大學(xué)出版社,2002.

[7]李廷文.VB控件高級編程[M].北京:人民郵電出版社,2000.

[8][ 美] JAMES D.Foxall.VISUAL BASIC編程標(biāo)準(zhǔn)[M].北京:機(jī)械工業(yè)出版社,2000.

[9]陳涌泉.Visual Basic第三方控件大全[M].北京:中國電力出版社,2002.

[10]戚利.網(wǎng)絡(luò)遠(yuǎn)程喚醒軟件的開發(fā)[ J] .電腦編程技巧與維護(hù),2008(6):53-55.

主站蜘蛛池模板: 欧美色综合网站| 国产成人精品2021欧美日韩| 亚洲视频免费播放| 日韩第八页| 亚洲一区免费看| 色噜噜中文网| 极品私人尤物在线精品首页| 国产va欧美va在线观看| 国产综合另类小说色区色噜噜| 一级毛片高清| 亚洲精品波多野结衣| 看av免费毛片手机播放| 精品一区二区无码av| 波多野结衣一区二区三区AV| 91丝袜美腿高跟国产极品老师| 国产一级毛片yw| 国产激情第一页| 好吊色妇女免费视频免费| 日韩国产欧美精品在线| 福利在线一区| 欧美亚洲国产视频| 亚洲精品综合一二三区在线| 国产麻豆91网在线看| 国产永久在线视频| 欧美a在线看| 免费无码AV片在线观看中文| 亚洲欧州色色免费AV| 老司国产精品视频91| 伊人成人在线| 美女被躁出白浆视频播放| 欧美一区二区精品久久久| 中文字幕一区二区人妻电影| 67194在线午夜亚洲 | 国产第八页| 国产成人综合亚洲欧洲色就色| 久久亚洲美女精品国产精品| 激情综合婷婷丁香五月尤物| 国产精品13页| 久操线在视频在线观看| 国产精品任我爽爆在线播放6080 | 日韩大片免费观看视频播放| 免费jizz在线播放| 国产浮力第一页永久地址| 青青青国产视频| 日韩亚洲综合在线| 妇女自拍偷自拍亚洲精品| 另类专区亚洲| 国产精品私拍99pans大尺度| 99久久精彩视频| 久久亚洲中文字幕精品一区| 拍国产真实乱人偷精品| 日韩欧美国产成人| 免费一级成人毛片| 欧美日韩国产高清一区二区三区| 亚洲第一成年人网站| 亚洲欧美综合在线观看| 成年人免费国产视频| 日本午夜影院| 日韩毛片免费观看| 亚洲av无码人妻| 2021国产乱人伦在线播放| 国产欧美日韩另类精彩视频| 国产中文一区a级毛片视频 | 亚洲av无码人妻| 国产小视频免费| 国产91丝袜在线播放动漫| 72种姿势欧美久久久久大黄蕉| 免费观看国产小粉嫩喷水| 亚洲制服丝袜第一页| 国产AV无码专区亚洲A∨毛片| 亚洲精品卡2卡3卡4卡5卡区| 1级黄色毛片| 91精品国产情侣高潮露脸| 国产精品刺激对白在线| 国产主播喷水| 久久公开视频| 九色在线视频导航91| 国产日韩欧美在线播放| 99热国产这里只有精品无卡顿"| 91在线日韩在线播放| 亚洲成综合人影院在院播放| 国产无人区一区二区三区|