I got WOL to work for DIR-655, Hardware Version: B1, Firmware Version: 2.00NA
FIRST STEP
On SETUP, NETWORK SETTINGS, I changed the Subnet Mask to 255.255.255.128, where the Router IP Address was already set to 192.168.0.1
SECOND STEP
I then saved the change. My router hung and had to reset it, but the change occurred. Admittedly this is a pain in the ass, but blame D-LINK.
THIRD STEP
On ADVANCED, VIRTUAL SERVER, I added 192.168.0.127 as the device to wake-up EVEN THOUGH the actual IP Address of the PC I want to wake-up is 192.168.0.100. I am not an expert, but I believe ALL PCs on my local network that are setup to Wake-up On Lan, will in fact wake-up. I can live with that as ONLY my PC that is PERMANENTLY ASSIGNED 192.168.0.100 is set to wake up which is exactly what I want. BEFORE saving the changes on ADVANCED, VIRTUAL SERVER, I additionally set Name to Wake-On-LAN, Public and Private ports to 9, Protocol to UDP, Schedule to Always, Inbound Filter to Allow All. I then saved the changes.
I can't begin to tell you how many suggestions I tried that did NOT work! However the above procedure worked for my DIR-655, Hardware Version: B1, Firmware Version: 2.00NA.