Hit the house directly? :O
There's not much you can do about that -- that's up close EMP and it'll zap pretty much everything with more than one cable attached (and even then maybe).
The problem is, EMP induces voltage (and therefore where a loop is formed, current too) on the lengths of cables. Where a current drops across a cable, some of that current divides into the signal lines, and that's how ports get fried.
A surge protector will account for signal currents at the connector, but those currents continue into the circuit, dropping voltage across internal traces as well. It might help, it might not.
To solve that, you need to route cables as if there were only one cable connecting to each device.
This implies a hub-and-spoke structure. Not very convenient for the most part, where, say, you have a triangular loop between the cable box, TV and their power cords (or any other example where signals and power travel separately). Shrinking the loop to about zero area means the cables have the same voltages induced on them along their lengths, which cancels out the voltage between cables, and no surge current flows.
Or, you probably have Ethernet cables routed through the house along different paths from the mains wiring; or even if you do, you probably don't have the router/switch at the panel.
Mains wiring is normally a hub-and-spoke topology, which is a great start at least. Matching the same topology, in the same location -- so that every circuit that runs from the panel, has a network cable directly alongside it, and the outlets are similarly paired -- should be a big help. Not saying that's a guarantee, or that it's easy to do once everything is already in place, sadly...
Tim