I have custom updates that need to be pushed out ever so often and need all receiving PCs to be booted up. Unfortunately, end-users will shut down their computers when they leave for the day.

I need a way to (based on the MAC address) boot up a PC. All NICs have Wake-On LAN support, I just need to know if VB.NET has any way of booting a PC using the "magic packet."

So does VB.NET support Wake-On LAN?

you can't boot up a computer remotely that has been turned off -- that would be a horrible security violation for all sorts of hackers and spammers.

Why don't you have each computer check at bootup time for the updates? Or tell your people to leave their computers on and just log off.

You can't say that you can't boot a Windows box remotely. Wake On LAN is a built in featuer in most motherboards and network cards. Security isn't an issue since MAC addresses aren't routable and if you had a hacker on your local area network, you have bigger problems.

I found out that in order to initiate a Wake On LAN boot, the network card must recieve the "magic packet." The magic packet is composed of 6 x 0xFF bytes (FFFFFFFFFFFF), then a sequence of the target MAC address 8 times. So if you had a MAC address of 00-10-20-30-40-50, your magical packet would look like this

FFFFFFFFFFFF001020304050001020304050001020304050001020304050001020304050001020304050001020304050001020304050

This is sent out on a UDP datagram on port 7 or 9 (mostly port 9) in a broadcast. Depending on your collision domain (subnet), you broadcast IP address will vary, but it is the last IP address on your subnet. Then each network cards that are powered (must be set up in the BIOS if not already) will recieve this packet due to the broadcast, but the only network card that reacts is the one with the matching MAC address that is in the UDP datagram.

So all I need to do is build a UDP datagram and send it out on port 9 using the broadcast IP address as my destination. So does anyone know the best way of building UDP datagrams?

you dont need to build it

I have a small program installed on my pda which i downloaded and i just type in the mac adress of the pc to wake and it boots up hen i click ok. There should be a similar thing for pcs

Well I am building a custom update server/client software that needs to be able to update all clients that use a certain vendor software. Then lets the server end know they were updated. The reason I want the ability to boot a PC remotely is so I can run this over night on Saturday when no one is there. If it is integrated then it will all run together and I don't need to be there. I like being a "lazy DBA."

This article has been dead for over six months. Start a new discussion instead.