under construction
Merge pull request #2 from ganye/master

Fixed getting MAC address for interface
added per channel deauthentication
added todo
fcntl.ioctl() is placing an ioctl (http://en.wikipedia.org/wiki/Ioctl) call to the opened socket.

In C land, an ioctl call would be: ioctl(fd, command, argument), where fd is the file descriptor
of the driver/file/socket/pipe/etc. you're querying, command is a constant defining which command
you're calling, and argument is an arbitrary value (but is usually a pointer to a struct with
user input).

This calling convention is similar in Python land, with fd being provided by: s.fileno(), command
hardcoded to 0x8927, and argument being a string of the interface name.

If we grep the Linux kernel source, we find that 0x8927 corresponds to this command:

$ grep 0x8927 -r include/
include/linux/sockios.h:#define SIOCGIFHWADDR	0x8927		/* Get hardware address		*/

man netdevice(7) explains use of the SIOCGIFHWADDR command, and how it returns the interface's
hardware (MAC) address.

The ''.join() line is simply formatting the returned data into a human-readable MAC address.
Fixed wording of the -p flag

Before it read as "to the client from the AP and 5 from the AP to the client" which is the same thing twice. Based on this code

deauth_pkt1 = Dot11(addr1=client, addr2=ap, addr3=ap)/Dot11Deauth()
deauth_pkt2 = Dot11(addr1=ap, addr2=client, addr3=client)/Dot11Deauth()

it should be "from the client to the AP and from the AP to the client"
Merge pull request #4 from ThaWeatherman/master

Fixed wording of the -p flag
Merge pull request #3 from mncoppola/master

fcntl.ioctl() is placing an ioctl (http://en.wikipedia.org/wiki/Ioctl) c...