package NetStumbler::Wap; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); # # We do not Export anything # our $VERSION = '0.08'; =head1 Object Methods =head2 new() Returns a new Wap object. NOTE: this method may take some time to execute as it loads the list into memory at construction time =cut sub new { my $proto = shift; my $class = ref($proto) || $proto; my $self = {} ; $self->{VENDORS} = {}; bless ($self, $class); return $self; } sub initialize { my $self = shift; while() { if(/END/) { last; } chomp; my ($prefix,$ven) = split(/\t/); if($prefix && $prefix =~ /\w\w:\w\w:\w\w/i) { $self->{VENDORS}->{$prefix} = $ven; } } } =head2 isAdhoc($flags) Params: -number 801.11 Capability flags Returns: true is the flags indicate the access point is in adhoc mode Example: if($obj->isAdhoc($flags)) { # do something here } =cut sub isAdhoc { my $self = shift; my $flags = shift; return $flags & 0x0002; } =head2 isInfrascruture($flags) Params: -number 801.11 Capability flags Returns: true is the flags indicate the access point is in infrastructure mode Example: if($obj->isInfrascructure($flags)) { # do something here } =cut sub isInfrastructure { my $self = shift; my $flags = shift; return !isAdhoc($flags); } =head2 hasWEP($flags) Params: -number 801.11 Capability flags Returns: true is the flags indicate the access point has WEP enabled Example: if($obj->hasWEP($flags)) { # do something here } =cut sub isWEP { my $self = shift; my $flags = shift; return $flags & 0x0010; } =head2 getVendorForBBSID ($mac) Determine the vendor or a nic by the MAC prefix The argument should be a mac address in the format of 00000000000 or 00:00:00:00:00:00 C will return the vendor or undef if the mac address could not be translated to a vendor =cut sub getVendorForBBSID { my $self = shift; my $mac = shift; if(length($mac) > 12) { my $prefix = substr($mac,0,8); return $self->{VENDORS}->{uc($prefix)}; } else { my $prefix = substr($mac,0,2) . ":" . substr($mac,2,2) . ":" . substr($mac,4,2); return $self->{VENDORS}->{uc($prefix)}; } } 1; __DATA__ 00:00:00 Xerox 00:00:01 Xerox 00:00:02 Xerox 00:00:03 Xerox 00:00:04 Xerox 00:00:05 Xerox 00:00:06 Xerox 00:00:07 Xerox 00:00:08 Xerox 00:00:09 Xerox 00:00:0C Cisco 00:00:95 Ericsson/Sony 00:00:AA Xerox 00:00:E2 Acer 00:00:E8 Accton 00:00:F0 Samsung 00:00:FF Camtec 00:01:02 3Com 00:01:03 3Com 00:01:24 Acer 00:01:42 Cisco 00:01:43 Cisco 00:01:4A Ericsson/Sony 00:01:4C Berkeley 00:01:63 Cisco 00:01:64 Cisco 00:01:96 Cisco 00:01:97 Cisco 00:01:C7 Cisco 00:01:C9 Cisco 00:01:EC Ericsson/Sony 00:01:F4 Enterasys (Cabletron) 00:01:F9 Global 00:02:07 Global 00:02:16 Cisco 00:02:17 Cisco 00:02:2D Proxim (Agere)ORiNOCO 00:02:4A Cisco 00:02:4B Cisco 00:02:6F Senao 00:02:7D Cisco 00:02:7E Cisco 00:02:88 Global 00:02:8A Ambit 00:02:9C 3Com 00:02:A5 Compaq 00:02:B3 Intel 00:02:B9 Cisco 00:02:BA Cisco 00:02:DD Bormax 00:02:EE Nokia 00:02:FC Cisco 00:02:FD Cisco 00:03:2F Global 00:03:31 Cisco 00:03:32 Cisco 00:03:47 Intel 00:03:6B Cisco 00:03:6C Cisco 00:03:93 Apple 00:03:9F Cisco 00:03:A0 Cisco 00:03:E3 Cisco 00:03:E4 Cisco 00:03:FD Cisco 00:03:FE Cisco 00:03:FF Microsoft 00:04:0B 3Com 00:04:0D Avaya 00:04:1F Ericsson/Sony 00:04:25 Atmel 00:04:27 Cisco 00:04:28 Cisco 00:04:31 Global 00:04:4D Cisco 00:04:4E Cisco 00:04:5A Linksys 00:04:6D Cisco 00:04:6E Cisco 00:04:9A Cisco 00:04:9B Cisco 00:04:C0 Cisco 00:04:C1 Cisco 00:04:C6 Yamaha 00:04:DD Cisco 00:04:DE Cisco 00:04:E2 SMC 00:04:E3 Accton 00:05:00 Cisco 00:05:01 Cisco 00:05:02 Apple 00:05:1A 3Com 00:05:31 Cisco 00:05:32 Cisco 00:05:3C Xircom 00:05:3D Proxim (Agere)ORiNOCO 00:05:5D D-Link 00:05:5E Cisco 00:05:5F Cisco 00:05:73 Cisco 00:05:74 Cisco 00:05:75 CDS 00:05:86 Lucent (WaveLAN) 00:05:9A Cisco 00:05:9B Cisco 00:05:DC Cisco 00:05:DD Cisco 00:06:25 Linksys 00:06:28 Cisco 00:06:2A Cisco 00:06:52 Cisco 00:06:53 Cisco 00:06:6E Delta(Netgear) 00:06:7C Cisco 00:06:8C 3Com 00:06:C1 Cisco 00:06:D6 Cisco 00:06:D7 Cisco 00:06:EB Global 00:07:0D Cisco 00:07:0E Cisco 00:07:4F Cisco 00:07:50 Cisco 00:07:84 Cisco 00:07:85 Cisco 00:07:B3 Cisco 00:07:B4 Cisco 00:07:E9 Intel 00:07:EB Cisco 00:07:EC Cisco 00:08:02 Compaq 00:08:0F Proxim(WaveLAN) 00:08:20 Cisco 00:08:21 Cisco 00:08:7C Cisco 00:08:7D Cisco 00:08:A3 Cisco 00:08:A4 Cisco 00:08:C2 Cisco 00:08:C7 Compaq 00:08:E2 Cisco 00:08:E3 Cisco 00:09:11 Cisco 00:09:12 Cisco 00:09:43 Cisco 00:09:44 Cisco 00:09:5B Netgear 00:09:7B Cisco 00:09:7C Cisco 00:09:B6 Cisco 00:09:B7 Cisco 00:09:E1 Gemtek 00:09:E8 Cisco 00:09:E9 Cisco 00:0A:04 3Com 00:0A:27 Apple 00:0A:41 Cisco 00:0A:42 Cisco 00:0A:5E 3Com 00:0A:8A Cisco 00:0A:8B Cisco 00:0A:95 Apple 00:0A:B7 Cisco 00:0A:B8 Cisco 00:0A:D9 Ericsson/Sony 00:0A:E9 AirVast 00:0A:F3 Cisco 00:0A:F4 Cisco 00:0B:45 Cisco 00:0B:46 Cisco 00:0B:5F Cisco 00:0B:60 Cisco 00:0B:89 Global 00:0B:AC 3Com 00:0B:BE Cisco 00:0B:BF Cisco 00:0B:C5 SMC 00:0B:CD Compaq 00:0B:FC Cisco 00:0B:FD Cisco 00:0B:FF Berkeley 00:0C:1E Global 00:0C:30 Cisco 00:0C:31 Cisco 00:0C:41 Linksys 00:0C:85 Cisco 00:0C:86 Cisco 00:0C:CA Global 00:0C:CC Bluesoft 00:0C:CE Cisco 00:0C:CF Cisco 00:0C:F1 Intel 00:0D:28 Cisco 00:0D:29 Cisco 00:0D:3A Microsoft 00:0D:54 3Com 00:0D:65 Cisco 00:0D:66 Cisco 00:0D:72 2Wire 00:0D:88 D-Link 00:0D:93 Apple 00:0D:B5 Global 00:0D:BC Cisco 00:0D:BD Cisco 00:0D:EC Cisco 00:0D:ED Cisco 00:0E:07 Ericsson/Sony 00:0E:0C Intel 00:0E:35 Intel 00:0E:38 Cisco 00:0E:39 Cisco 00:0E:6A 3Com 00:0E:83 Cisco 00:0E:84 Cisco 00:0E:D6 Cisco 00:0E:D7 Cisco 00:0E:ED Nokia 00:0F:23 Cisco 00:0F:24 Cisco 00:0F:34 Cisco 00:0F:35 Cisco 00:0F:3D D-Link 00:0F:5B Delta(Netgear) 00:0F:66 Cisco 00:0F:8F Cisco 00:0F:90 Cisco 00:0F:B3 Premax(Actiontec) 00:0F:B5 Netgear 00:0F:CB 3Com 00:0F:DE Ericsson/Sony 00:0F:E2 3Com 00:0F:F7 Cisco 00:0F:F8 Cisco 00:10:07 Cisco 00:10:0B Cisco 00:10:0D Cisco 00:10:11 Cisco 00:10:14 Cisco 00:10:1F Cisco 00:10:29 Cisco 00:10:2F Cisco 00:10:4B 3Com 00:10:54 Cisco 00:10:5A 3Com 00:10:79 Cisco 00:10:7A Ambicom 00:10:7B Cisco 00:10:A4 Xircom 00:10:A6 Cisco 00:10:B3 Nokia 00:10:B5 Accton 00:10:E3 Compaq 00:10:E7 BreezeNet 00:10:F6 Cisco 00:10:FF Cisco 00:11:11 Intel 00:11:20 Cisco 00:11:21 Cisco 00:11:24 Apple 00:20:14 Global 00:20:7B Intel 00:20:88 Global 00:20:A6 Proxim(WaveLAN) 00:20:AF 3Com 00:20:D8 NetWave-Bay 00:20:E0 Premax(Actiontec) 00:26:54 3Com 00:30:19 Cisco 00:30:1E 3Com 00:30:24 Cisco 00:30:40 Cisco 00:30:65 Apple 00:30:6D Lucent (WaveLAN) 00:30:71 Cisco 00:30:78 Cisco 00:30:7B Cisco 00:30:80 Cisco 00:30:85 Cisco 00:30:94 Cisco 00:30:96 Cisco 00:30:98 Global 00:30:A3 Cisco 00:30:AB Delta(Netgear) 00:30:B6 Cisco 00:30:B8 Delta(Netgear) 00:30:BD Belkin 00:30:F1 Accton 00:30:F2 Cisco 00:40:05 Ani 00:40:0B Cisco 00:40:27 SMC 00:40:33 Addtron 00:40:36 Zoom-Tribe 00:40:43 Nokia 00:40:96 Aironet 00:40:AE Delta(Netgear) 00:50:04 3Com 00:50:0B Cisco 00:50:0F Cisco 00:50:14 Cisco 00:50:18 Adv 00:50:2A Cisco 00:50:3E Cisco 00:50:50 Cisco 00:50:53 Cisco 00:50:54 Cisco 00:50:73 Cisco 00:50:80 Cisco 00:50:8B Compaq 00:50:98 Global 00:50:99 3Com 00:50:A0 Delta(Netgear) 00:50:A2 Cisco 00:50:A7 Cisco 00:50:BA D-Link 00:50:BD Cisco 00:50:D1 Cisco 00:50:DA 3Com 00:50:E2 Cisco 00:50:E4 Apple 00:50:F0 Cisco 00:50:F2 Microsoft 00:50:F3 Global 00:60:08 3Com 00:60:09 Cisco 00:60:1D Lucent (WaveLAN) 00:60:2F Cisco 00:60:3E Cisco 00:60:47 Cisco 00:60:5C Cisco 00:60:67 Acer 00:60:70 Cisco 00:60:83 Cisco 00:60:8C 3Com 00:60:97 3Com 00:60:B3 Z-Com 00:60:D2 Lucent (WaveLAN) 00:80:37 Ericsson/Sony 00:80:5F Compaq 00:80:C7 Xircom 00:80:C8 D-Link 00:90:04 3Com 00:90:0C Cisco 00:90:0E Handlink 00:90:21 Cisco 00:90:27 Intel 00:90:2B Cisco 00:90:4B Gemtek 00:90:4D Gemtek 00:90:5F Cisco 00:90:6C Global 00:90:6D Cisco 00:90:6F Cisco 00:90:86 Cisco 00:90:92 Cisco 00:90:A6 Cisco 00:90:AB Cisco 00:90:B1 Cisco 00:90:BF Cisco 00:90:D1 Addtron 00:90:D9 Cisco 00:90:E6 Acer 00:90:F2 Cisco 00:A0:24 3Com 00:A0:40 Apple 00:A0:60 Acer 00:A0:8E Nokia 00:A0:C9 Intel 00:A0:DE Yamaha 00:A0:F8 Symbol 00:AA:00 Intel 00:AA:01 Intel 00:AA:02 Intel 00:B0:4A Cisco 00:B0:64 Cisco 00:B0:8E Cisco 00:B0:C2 Cisco 00:C0:03 Global 00:C0:49 U.S. Robotics 00:C0:AC Ambit 00:D0:06 Cisco 00:D0:58 Cisco 00:D0:59 Ambit 00:D0:63 Cisco 00:D0:77 Lucent (WaveLAN) 00:D0:79 Cisco 00:D0:90 Cisco 00:D0:96 3Com 00:D0:97 Cisco 00:D0:9E 2Wire 00:D0:AB Delta(Netgear) 00:D0:B7 Intel 00:D0:BA Cisco 00:D0:BB Cisco 00:D0:BC Cisco 00:D0:C0 Cisco 00:D0:D3 Cisco 00:D0:D8 3Com 00:D0:E4 Cisco 00:D0:FF Cisco 00:E0:03 Nokia 00:E0:14 Cisco 00:E0:1E Cisco 00:E0:34 Cisco 00:E0:38 Proxim(WaveLAN) 00:E0:4F Cisco 00:E0:78 Berkeley 00:E0:85 Global 00:E0:8F Cisco 00:E0:A3 Cisco 00:E0:B0 Cisco 00:E0:E4 U.S. Robotics 00:E0:F7 Cisco 00:E0:F9 Cisco 00:E0:FE Cisco 02:60:8C 3Com 02:C0:8C 3Com 08:00:05 Symbol 08:00:07 Apple 08:00:37 Xerox 08:00:46 Ericsson/Sony 08:00:4E 3Com 08:00:72 Xerox __END__ # Below is stub documentation for your module. You'd better edit it! =head1 NAME NetStumbler::Wap - Wap tools for NetStumbler =head1 SYNOPSIS use NetStumbler::Wap; my $waplib = NetStumbler::Wap->new(); my $vendor = $waplib->getVendorForBBSID("mac address"); =head1 DESCRIPTION This module stores a list of mac prefixes for various wireless cards It was built for use with NetStumbler/Kismet/iStumbler etc... to help with vendor mac discovery =head2 EXPORT None by default. =head1 SEE ALSO http://idogan.istanbul.edu.tr/oui_full.html OUI database All the items in this list were generated by parsing the oui database =head1 AUTHOR Salvatore E. ScottoDiLuziowashu@olypmus.net =head1 COPYRIGHT AND LICENSE Copyright (C) 2004 by Salvatore ScottoDiLuzio This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available. =cut