You may have to consider - as I did - *not* repairing Net::Libdnet; rather, rewriting some of your scripts to accommodate. Perhaps not ideal, but better than pushing water uphill. Since I'm not an expert coder and my efforts to get Net::Libdnet working didn't work - it was my only option.

Win32::Interfaces is in the PPC distribution on GitHub. It wasn't written as a replacement for Net::Libdnet, it was because Net::Libdnet, IO::Interfaces, etc. don't compile / work on Windows. So I took a lot of "functionality" from those modules and emulated it in the accessors for Win32::Interfaces pulling information from 'wmic', 'netsh' and other Windows system commands. It's not elegant, but it works.

Win32::Interfaces is pure Perl and can be installed "manually" by dropping the Interfaces.pm in your (...)/lib/Win32 folder. It has complete perldoc to get you started.

NAME Win32::Interfaces - Win32 Network Adapter Interfaces SYNOPSIS use Win32::Interfaces; my $interface = Win32::Interfaces->new('Wireless Network Connect +ion'); printf "Name: %s\n", $interface->name; printf "MAC: %s\n", $interface->mac; printf "IPv4: %s\n", $interface->ipv4; DESCRIPTION Win32::Interfaces is a module to retrieve Windows interface adapte +r information (such as IP[v6] addresses, gateways, MAC, etc...). It +is implemented with system functions such as "wmic", "netsh" and "arp +". A better approach may be to use XS with "GetAdaptersAddresses()" and + parse the "IP_ADAPTER_ADDRESSES" structure. Alas, that is proving diffic +ult to do. This module was developed since I couldn't find an existing CPAN m +odule that handled this information specifically for Windows, let alone +find Win32 support in the many interface modules already on CPAN (see S +EE ALSO). The existing CPAN interface modules also used different API +s so finding a common interface for both Windows and *nix with all the features was not possible. This modules attempts to provide many of the API calls from *nix interface modules specifically to Win32. [...]

And a pretty extensive demonstration:

use strict; use warnings; use Win32::Interfaces; # Assumes the existence of "Local Area Connection" interface as defaul +t my $W32interfaces = Win32::Interfaces->new(); my @interfaces = $W32interfaces->interfaces(); for my $if (@interfaces) { my $interface = $W32interfaces->interface($if); if (!defined($interface)) { print Win32::Interfaces->error . "\n" } else { print "\n"; printf "Name: %s\n", $interface->name + if $interface->name; printf "Description: %s\n", $interface->description + if $interface->description; printf "Adapter: %s\n", $interface->adaptername + if $interface->adaptername; printf "Device: %s\n", $interface->device + if $interface->device; printf "ifIndex: %s\n", $interface->ifindex + if $interface->ifindex; printf "MAC: %s\n", $interface->mac + if $interface->mac; printf "IPv4: %s\n", $interface->ipv4 + if $interface->ipv4; printf "IPv4 netmask: %s\n", $interface->ipv4_netmask + if $interface->ipv4_netmask; printf "IPv4 gateway: %s\n", $interface->ipv4_default_gate +way if $interface->ipv4_default_gateway; printf "IPv4 gateway MAC: %s\n", $interface->ipv4_gateway_mac + if $interface->ipv4_gateway_mac; printf "IPv4 MTU: %s\n", $interface->ipv4_mtu + if $interface->ipv4_mtu; printf "IPv6: %s\n", $interface->ipv6 + if $interface->ipv6; printf "IPv6 link-local: %s\n", $interface->ipv6_link_local + if $interface->ipv6_link_local; # printf "IPv6 DHCPv6 IAID: %s\n", $interface->dhcpv6_iaid + if $interface->dhcpv6_iaid; # printf "IPv6 DHCPv6 DUID: %s\n", $interface->dhcpv6_duid + if $interface->dhcpv6_duid; printf "IPv6 gateway: %s\n", $interface->ipv6_default_gate +way if $interface->ipv6_default_gateway; printf "IPv6 gateway MAC: %s\n", $interface->ipv6_gateway_mac + if $interface->ipv6_gateway_mac; printf "IPv6 MTU: %s\n", $interface->ipv6_mtu + if $interface->ipv6_mtu; printf "MTU: %s\n", $interface->mtu + if $interface->mtu; printf "DNS Server %s\n", $interface->dnsserver + if $interface->dnsserver; print "\n"; print $interface->dump; printf "\nDONE - %s\n", $interface->name if $interface->name; } }

In reply to Re^5: Net::Libdnet 0.01 does not work under Window 7 by VinsWorldcom
in thread Net::Libdnet 0.01 does not work under Window 7 by perlusr193

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.