# wlanconnect.pl -- connect to a WLAN network on Windows XP SP3 and above. # Args: PROFILENAME to use and SSID to connect to use strict; use warnings; use Encode qw(encode); use Win32::Wlan::API qw< WlanOpenHandle WlanCloseHandle WlanQueryCurrentConnection WlanEnumInterfaces WlanGetAvailableNetworkList $wlan_available WlanDeleteProfile WlanSetProfile WlanScan WlanConnect WlanGetProfileList >; main(); sub main { die "USAGE: $0 PROFILENAME SSID\n" unless($ARGV[1]); my $profilename = shift; my $ssid = shift; my $wlan_handle = WlanOpenHandle(); my @interfaces = WlanEnumInterfaces($wlan_handle); my $wlan_guuid = $interfaces[0]->{guuid}; $profilename = encode('UTF-16LE', $profilename); WlanConnect($wlan_handle, $wlan_guuid, $profilename, $ssid); }