cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
520
Views
5
Helpful
3
Replies

NIC problems

T.L.Beleivens
Level 1
Level 1

I am trying to find the manufacture of many different LAN and WLAN NIC we have. We do not have Ciscoworks installed, so that is out of the question. Does anyone know a quick way to do this?

- Ted

1 Accepted Solution

Accepted Solutions

jipurser
Level 1
Level 1

Hey Ted,

I certainly understand this issue. The trick is pulling the info from a switch bridge table and then either querying the IEEE OUI database or having a prebuilt DB with the most common OUI's in it.

I wrote a perl script to help me hunt down WLAN cards. With so many fish to catch, I am a little lazy in code writing, so this uses ARP and just runs a web query to the IEEE OUI database. I ran this on my Mac with Curl installed and it worked great. Just cut copy paste and you should be ready, providing you have Perl and Curl installed. Both are free.

while() {

chomp;

my $addr = $_;

my $ip = $_;

$addr =~ s/.* ([\d\w]+:[\d\w]+:[\d\w]+):.*/$1/;

$addr =~ s/\b([\d\w])\b/0$1/g;

$addr =~ s/:/-/g;

next unless $addr =~ /..-..-../;

$ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/;

print ".";

$cards{$addr}||=`curl -sd "x=$addr"

http://standards.ieee.org/cgi-bin/ouisearch

($cards{$addr} =~ /Sorry!/) && ($cards{$addr} = "Unknown OUI: $addr");

$ips{$ip} = $addr; }

print "\n";

for(keys(%ips)) {

$cards{$ips{$_}} =~ s/.*.hex.\s+([\w\s\,\.]+)\n.*/$1/s;

print "$_ -> $cards{$ips{$_}}\n";

}

I hope it helps

View solution in original post

3 Replies 3

jipurser
Level 1
Level 1

Hey Ted,

I certainly understand this issue. The trick is pulling the info from a switch bridge table and then either querying the IEEE OUI database or having a prebuilt DB with the most common OUI's in it.

I wrote a perl script to help me hunt down WLAN cards. With so many fish to catch, I am a little lazy in code writing, so this uses ARP and just runs a web query to the IEEE OUI database. I ran this on my Mac with Curl installed and it worked great. Just cut copy paste and you should be ready, providing you have Perl and Curl installed. Both are free.

while() {

chomp;

my $addr = $_;

my $ip = $_;

$addr =~ s/.* ([\d\w]+:[\d\w]+:[\d\w]+):.*/$1/;

$addr =~ s/\b([\d\w])\b/0$1/g;

$addr =~ s/:/-/g;

next unless $addr =~ /..-..-../;

$ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/;

print ".";

$cards{$addr}||=`curl -sd "x=$addr"

http://standards.ieee.org/cgi-bin/ouisearch

($cards{$addr} =~ /Sorry!/) && ($cards{$addr} = "Unknown OUI: $addr");

$ips{$ip} = $addr; }

print "\n";

for(keys(%ips)) {

$cards{$ips{$_}} =~ s/.*.hex.\s+([\w\s\,\.]+)\n.*/$1/s;

print "$_ -> $cards{$ips{$_}}\n";

}

I hope it helps

Thank you Jimmy Ray. This worked nicely

flopez
Level 1
Level 1

you could have also looked in your DHCP server because under Address Leases you can see what the mac address is. You can go online and find out what type of card it is by typing in the Unique Number.

julio

Review Cisco Networking products for a $25 gift card