NAME

Win32::Wlan - Query wlan properties

SYNOPSIS

require Win32::Wlan;
my $wlan = Win32::Wlan->new;
if ($wlan->available) {
    print "Connected to ", $wlan->connection->{profile_name},"\n";
    print "I see the following networks\n";
    for ($wlan->visible_networks) {
        printf "%s\t-%d dbm\n", $_->{name}, $_->{signal_quality};
    };

} else {
    print "No Wlan detected (or switched off)\n";
};

METHODS

Win32::Wlan->new( %args )

my $wlan = Win32::Wlan->new();

Creates a new Win32::Wlan object.

  • available - optional argument to force detection of general Wlan availability

  • handle - optional argument to give an existing Wlan handle to the object

  • interface - optional argument to give an existing guuid to the object

$wlan->handle

Returns the Windows API handle for the Wlan API.

$wlan->interface

print $wlan->interface->{name};

Returns a hashref describing the interface. The keys are guuid for the guuid, name for the human-readable name and status for the status of the interface.

$wlan->available

$wlan->available
    or warn "Wlan API is not available";

Returns whether the Wlan API is available. The Wlan API is available on Windows XP SP3 or higher.

$wlan->connected

$wlan->connected
    or warn "Wlan connection unavailable";

Returns whether a Wlan connection is established. No connection is established when Wlan is switched off or no access point is in range.

$wlan->connection

if ($wlan->connected) {
    print "Connected to ";
    print $wlan->connection->{profile_name};
};

Returns information about the current connection in a hashref. The keys are

  • profile_name - the name of the profile of the current connection

$wlan->visible_networks

Returns information about the currently visible networks as a list of hashrefs.

  • ssid - the SSID of the network

  • signal_quality - the signal quality ranging linearly from 0 to 100 meaning -100 dbm to -50 dbm

SIMPLIFICATIONS

This module only supports the first wireless connection. If your machine has more than one wireless connection, you will need to use Win32::Wlan::API directly.

Currently, the module also has no way of determining whether Wlan gets switched on or off.

SEE ALSO

Win32::Wlan::API - the wrapper for the Windows API

Windows Native Wifi Reference

https://msdn.microsoft.com/en-us/library/ms706274%28v=VS.85%29.aspx

REPOSITORY

The public repository of this module is https://github.com/Corion/Win32-Wlan.

SUPPORT

The public support forum of this module is https://perlmonks.org/.

BUG TRACKER

Please report bugs in this module via the RT CPAN bug queue at https://rt.cpan.org/Public/Dist/Display.html?Name=Win32-Wlan or via mail to win32-wlan-Bugs@rt.cpan.org.

AUTHOR

Max Maischein corion@cpan.org

COPYRIGHT (c)

Copyright 2011-2022 by Max Maischein corion@cpan.org.

LICENSE

This module is released under the same terms as Perl itself.