Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have 3 IP blocks and 3 Cisco Switches. Each switch has its own IP block -, and

I have got a PC on block. I can wake up whole computers (with IP Address, Mac Address, Subnet, Port) in this IP block from C#.

But when I try to wake up another machine from a different IP block it does not work.

This is a Network Problem or code problem? How can I solve it?

share|improve this question

migrated from Jun 29 '11 at 4:35

This question came from our site for professional and enthusiast programmers.

This is a fundamental problem: WOL only works inside a subnet, because a WOL magic packet isn't a valid IP packet and therefore is not routable beyound the local LAN.

The wikipedia entry outlines a solution for this problem (subnet directed broadcasts), but I've never seen this in action. Another way around the problem might be to create a WOL proxy agent that forwards WOL packets into other subnets (i.e. as a UDP packet).

share|improve this answer
So How Can i create a WOL Proxy ? Need to configure my switchs for this or any application? – Ibrahim AKGUN Jun 28 '11 at 21:19
A WOL proxy is easy in theory: Write a small daemon that (a) sniffs the local network and encapsulates WOL packets it detects into UDP packets that get send to its counterparts in the other two subnets and (b) if it receives such an UDP packet, it converts it into a real WOL magic packet for the local subnet. – Sven Jun 28 '11 at 21:34

If you have three different subnets, those subnets cannot talk to each other without a router.

This is 100% deliberate and by design.

Your Default Gateway from the machine you're trying to do the WOL from must explicity know how to get to those other subnets, or else it sends your packet out onto the internet, where it will be immediately dropped by your ISP.

So, you have two choices:

  1. Set up proper routing between the subnets
  2. Reduce your subnet mask to something like (/16) so that all the machines are on the same subnet. I do not reccomend this, as I'm sure there's a reason that your machines are subnetted off from eachother.
share|improve this answer

One possible solution: Add a second(even a third) NIC card to your controlling PC, then configure with the other IP addresses to connect directly with the other routers. Magic packets will then pass out the associated NIC based on destination IP in the WOL command (IP, MAC, subnet, port).

share|improve this answer

It's probably a network problem. You are sending a broadcast message that probably is blocked in your firewall/router, because you rarely allow broadcast traffic to cross nets.

I assume that you can wake up computers on their individual IP? IF you can't do that either, I would say that your firewall blocks wake on lan traffic completely.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.