OK, so I hit this problem yesterday and I thought it was just one friend's mac. This morning I found that several macs were having the same problem on wifi. (Ethernet was OK, but not wifi.) I have SOLVED it for me - so here's the info in case it helps!
NB - I have tried most of the solutions on most of the help threads. (Once, years ago, I had the same problem, and one of the fixes I found back then did work. I think it was either deleting the wifi setting from Network Preferences or fixing the keychain or both. But this time, those fixes were achieving nothing.)
Anyway, the solution was simple! My modem-router included a setting for its DHCP server that was limited to 20 addresses. In other words, it was offering addresses from 192.168.1.1 to 192.168.1.20. At first I dismissed that possibility, since you'd think 20 would be plenty for one house! However, I was very wrong. Here's why.
1. Yes, we do own several Macs, and some of these are connected by ethernet AND wifi, so those ones use two addresses each.
2. Yes, we own several iPhones, iPods, an AppleTV etc.
3. Yes, we had visitors in the house. My daughter's friend had brought her iPad; my parents had brought their laptops and their phones!
4. I have an Airport Extreme and a Time Capsule, both connected (in Bridge Mode) to the modem-router, so that's two more addresses.
5. Remember that DHCP leases last for 24 hours (or whatever your router is set to), so even when visitors are gone or machines are turned off, those addresses might not become free.
SOLUTION? I changed the router's setting to offer all addresses up to 192.168.1.40. (I might even go back and offer even more than 40 - no reason why not).
My wifi macs had no trouble from that point. Hope this helps! 🙂
[NB - The reason my ethernet was always OK was that those connections had been running a long time. But if an Ethernet connection had gone down, and I had reconnected it at a time when its address had been stolen by another device, then I likely would have hit the same "self-assigned IP" error. In other words, in my case I don't believe the issue made any real distinction between wireless and wired connections.]