If you're running SQL Server 2005 or above you can use this (some shops disable xp_cmdshell):
Limitation: You only get IP addresses if you're connective via TCP/IP. If you're local and using Shared Memory then those attributes don't exist. If you turn off Shared Memory (or any protocols except for TCP/IP) via Server Configuration Manager you will always get IP address for any connection using this technique.
PeteKI have CDO. It's like OCD but all the letters are in alphabetical order... as they should be.