954,517 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Wake-On LAN to Boot Remote PCs

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?

Geek-Master
Junior Poster
158 posts since Dec 2004
Reputation Points: 12
Solved Threads: 7
 

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.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

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.

Geek-Master
Junior Poster
158 posts since Dec 2004
Reputation Points: 12
Solved Threads: 7
 

i think .NET does as i use a small piece of PocketPC software written in C#.NET to do it

jbennet
Moderator
Moderator
18,523 posts since Apr 2005
Reputation Points: 1,826
Solved Threads: 601
 

I't might lie in the System.Net.Sockets class, but I'll check MSDN

Geek-Master
Junior Poster
158 posts since Dec 2004
Reputation Points: 12
Solved Threads: 7
 

Oops! Yes, I am wrong -- just found out from an expert in my office.

Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

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?

Geek-Master
Junior Poster
158 posts since Dec 2004
Reputation Points: 12
Solved Threads: 7
 

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

jbennet
Moderator
Moderator
18,523 posts since Apr 2005
Reputation Points: 1,826
Solved Threads: 601
 

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."

Geek-Master
Junior Poster
158 posts since Dec 2004
Reputation Points: 12
Solved Threads: 7
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You