#!/usr/bin/perl

use strict;

my $eth = ‘eth1′; # here is the interface wich is the wifi device

#the script is executed (under ubuntu) this way:
# sudo ./wifi.pl h1
# parameter denotes determines the network and the key for the script.

my %keys = ( # hardcode all the WEP keys over here

    ‘h1′ => ’s:xxxxxxxxxxxx’,
‘h2′ => ’s:xxxxxxxxxxxx’,
‘h3′ => ’s:xxxxxxxxxxxx’,
‘h4′ => ’s:xxxxxxxxxxxx’,
‘o1′ => ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’,
);
my %net = ( #hardcode all the names of the wifi nets overe here

    ‘h’ => ‘wf_def’,
‘o’ => ‘dsl’,
);
my %channel = ( #the channels
‘h’ => 6,
‘o’ => 2,
);

chomp (my $key = shift @ARGV);

if ($keys{$key}) {
my $essid = $net{substr($key,0,1)};
!system «iwconfig», «$eth», «essid», $essid or die «iwconfig failed to set essid $!\n»;
print «essid has been set to $essid\n»;
!system «iwconfig», «$eth», «key», «$keys{$key}» or die «iwconfig failed to set key $!\n»;
print «key has been set to $keys{$key}\n»;
my $channel=$channel{substr($key,0,1)};
!system «iwconfig», «$eth», «channel»,$channel or die «iwconfig failed to set channel $!\n»;
print «the channel has been set to $channel\n»;
system «dhclient $eth»;
print «dhclient command accomplished successfuly\n»;
} else {
die «There is no such key $key \n»;
}