UPDATE: Thanks for all the responses / advice. Module is now live on CPAN: Win32::Net::Info.
A while back I needed a Win32 module for getting network interface / adapter information much like IO::Interface or Net::Interface or Net::Libdnet .. but for Windows (obviously). Also, I know of Win32::IPConfig and Win32::IPConfig::Adapter which use the registry, but don't have all the functionality I needed. Finding nothing that suited at the time, I started to write one myself using XS and hitting the GetAdaptersAddresses() API and parsing the IP_ADAPTER_ADDRESSES structure, but alas my XS skills suck and I ended up writing a Perl interface around some 'wmic', 'netsh' and other Windows command line calls. Hey, it worked.
I thought about CPAN upload for a long while (years) and now I probably should, but what to name it? Originally, 'Win32::GetAdapterAddresses' would have been a good name, but I don't do the XS API integration so didn't want to misrepresent the functionality. It's currently called 'Win32::Interface' - which made sense since at the time, IO::Interface was mainly the functionality I was trying to duplicate. But now not so sure. How about ...
- Win32::Interface - descriptive (for me), but thinking of others, I'm now not so sure. Also, I see Win32::API::Interface which is totally unrelated and I could cause confusion.
- Win32::Adapter - maybe?
- Win32::Network::Adapter - getting un-useful-ly long just to be overly descriptive
- Win32::Network::Interface - same as above
- IO::Interface::Win32 - I'm not actually sub-classing IO::Interface, so probably not a good idea
- Net::Interface::Win32 - same as above
- Win32::IO::Interface - just iterating names now ...
- Win32::IO::Adapter - and again ...
- Win32::Net::Interface - again ...
- Win32::Net::Adapter - ...
Mainly, should it live under IO::, Net:: or Win32::, and then what name under the top level namespace? Suggestions? Maybe a Perlmonks Poll?!?