Tracking inventory messages
Using Bitcoin Core, if you start it with -debug=net (or add debug=net to your bitcoin.conf file), every single network message will be included in the debug.log file along with the node it came from. You can then parse the debug.log file to get the information you want.