我是日本的服务台,虽然我一直在为我自己的项目学习Python,现在我需要编写VBScript,将'Magic Packet'广播到呼叫中心的200多台PC。
有人可以请我告诉我如何实现这个目标或者只是教我代码吗?
例如,我们公司的合规性不允许我下载任何免费软件,但不知何故,如果我可以打开它并使用.txt复制源代码并将其带入公司就可以了....
或者......我发现下面有一些VB6脚本,我相信这正是我需要的,所以也许有人可以把它翻译成VBS?
Dim strIP As String = "192.168.1.1" 'IPアドレス
Dim strMAC As String = "00-00-00-00-00-00" 'マックアドレス
'送信データを作成
Dim intCounter As Integer = 0
Dim sendBytes(0 To 101) As Byte
'最初に&hFFを6個付ける
For I = 1 To 6
sendBytes(intCounter) = &HFF
intCounter += 1
Next
'MACアドレスを16回繰り返す
For I = 1 To 16
'MACアドレス読込み
For J = 0 To 5
'16進数を変換して読込み
sendBytes(intCounter) = Byte.Parse(strMAC.Substring(J * 3, 2), Globalization.NumberStyles.HexNumber)
intCounter += 1
Next
Next
'データを送信するポート番号
Dim RemotePort As Integer = 2304 '何でも良い
'送信先IP指定(ブロードキャストとピンポイントの両方に送信してみる)
Dim BCIP As System.Net.IPAddress
Dim EP As System.Net.IPEndPoint
Dim UDP As New System.Net.Sockets.UdpClient'UDP接続
'ブロードキャストアドレス指定で送信するとき
BCIP = System.Net.IPAddress.Parse("255.255.255.255")
EP = New System.Net.IPEndPoint(BCIP, RemotePort)
'送信先を指定してデータを送信する
UDP.Send(sendBytes, sendBytes.Length, EP)
'ピンポイントのIPアドレス指定して送信するとき
BCIP = System.Net.IPAddress.Parse(strIP)
EP = New System.Net.IPEndPoint(BCIP, RemotePort)
'送信先を指定してデータを送信する
UDP.Send(sendBytes, sendBytes.Length, EP)
'UDP接続を終了
udp.Close()
我知道这种愚蠢的开放性问题会激怒一些中级技术人员,所以如果你对此感到不舒服,就不理我。
答案 0 :(得分:4)
您拥有的代码是VB.NET,而不是VB6或VBScript。 VBScript没有内置的套接字支持,Windows也没有COM库来处理套接字,但第三方库可用(例如来自Chilkat):http://www.example-code.com/vbscript/socket_connect.asp
如果您处于系统管理员方面,那么最好使用PowerShell:
以下是您想要的示例(发送魔术包):http://powershell.com/cs/media/p/1506.aspx