0

我是日本的服务台,虽然我一直在为自己的项目学习 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()

我知道这种愚蠢的开放式问题会激怒一些中级技术人员,所以如果您对此感到不舒服,请忽略我。

4

1 回答 1

5

您拥有的代码是 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

于 2013-10-22T03:26:51.017 回答