There is a desktop computer in our LAN that keeps booting almost every time seconds after it has been turned off manually.
I suspected it was a Wake-on-LAN issue since the beginning, and it looks like it: the problem disappears if the ethernet cable is disconnected before turning the computer off. Also, although the BIOS does not have an specific option to disable WOL, it has a power saving option that switches off the network card when the computer is not running, and this solves the problem too.
The thing is I cannot find who is sending WOL packets. I am sniffing the whole LAN with Wireshark using the capture filter "ether proto 0x0842 or udp", as suggested in http://wiki.wireshark.org/WakeOnLAN and it does not detect anything. But when I manually send WOL packets from different computers on the network Wireshark does catch these packets.
I don't see anything weird when capturing all traffic to and from this computer either.
This "Wake on Pattern Match" option is enabled on the computer. According to https://superuser.com/questions/560175/what-is-wake-on-pattern-match-in-network-card-preferences the default patterns are: magic packet, NetBIOS name query, TCPv4 SYN, TCPv6 SYN, IPv6 Neighbour Solicitation.
The other PCs have this option enable too, but they do not randomly wake up. I am going to check if this computer is receiving any of these.