I run Windows 7 Home Deluxe and have an onboard Realtek PCBe Family NIC and a Netgear WNR1000v3 router. They worked great up until about a week ago, when this weird no-internet-after-sleep problem reared its weird head (no significant changes were made to the computer before the problem).
So when this problem popped up a few days ago, I simply avoided putting the machine to sleep for a while (a temporary and non-ideal solution). I finally got a chance to mess with it yesterday to no avail. After much searching of the internet, the only informed suggested solutions to this specific issue advised:
Unchecking "Allow the computer to turn off this device to save power" worked for me. Navigation: Network and Sharing Center -> Change Adapter Settings -> Local Area Connection -> Properties -> Configure -> Power Management; and
Reinstalling NIC drivers.
After I completed these steps, nothing changed. I did some more digging and turned up some Microsoft support articles (not very helpful) about DHCP not querying the router correctly after sleep because the default Gateway address was lost. So after waking the computer from sleep and having no internet, I checked out the internal IP address and it was set to some random value (when I checked, it wasn't even allocated on the internet). That was very strange indeed, so today I decided to go old school, and my solution worked.
Quick warning: This is only an appropriate solution if you are the router administrator (or can ask them to do this for you), otherwise, Step 1 is impossible.
My reasoning was if DHCP doesn't work, instead of getting an internal IP address dynamically, I can set it to be a static IP. In order for this setup to persist working, you'll need to 1) force your router to give your computer the same IP every time, and 2) force Windows to use a static IP and DNS server.
For the Netgear router, this is easy. Go to 192.168.1.1 in a web-browser and log into the router. Once there, click on the advanced settings tab and select internet setup, then select LAN setup (LAN setup or something like it will be in every router configuration menu, just click around). On this screen, you can reserve a specific IP (like 192.168.1.5 or whatever) for any device. Netgear makes this easy by just clicking the Add button at the bottom and using radio buttons to select from already connected wired devices. Add your device and write down the IP address. Go back to the main router page and look for an info screen that lists the Subnet Mask, Gateway, and DNS server addresses for your router (they will be in xxx.xxx.xxx.xxx format); write them down too, you will all these values for Step 2.
In Windows, go to Start -> Control Panel and select Network and Sharing Center, click on Local Area Connection (in blue) and then select Properties. You'll see several entries with values that can be changed. (Scroll down to) Click on Internet Protocol Version 4 and select Properties. Then select Use the Following IP address (radio button) and enter your computer's static internal IP (from Step 1; usually something like 192.168.1.5). Then enter the subnet mask address from Step 1 (mine was 255.255.255.0, which is typical) and then the default gateway address from Step 1 (mine was 192.168.1.1, again typical). Now you need to fill in the DNS Server and Alternate DNS server addresses, which you also got from Step 1 (mine were 22.214.171.124 and 126.96.36.199). Tick the Validate Settings Upon Exit box and click OK.
Sit back and enjoy your internet. For me, the settings validation thing told me that there were still problems, yet everything works fine. I've put the computer to sleep several times with the same happy result, functional internet upon waking. It's been 36 hours now and everything works great.
I hope this (fairly simple) fix works for you and saves you a day of frustration. (I actually use port forwarding and already had an internal IP address reserved for my machine, so all I needed to do for Step 1 was to figure out all the addresses needed for Step 2).