Determining MAC address

What would be the best (clean, cross-platform) way of determining the
MAC
address of a host when you have the hostname and IP address?


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

On Fri, Aug 1, 2008 at 9:03 AM, Glen H. [email protected]
wrote:

What would be the best (clean, cross-platform) way of determining the MAC
address of a host when you have the hostname and IP address?


“Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

There is an older project net-proto floating around. The same guy did
a sys/admin and sys/net library. One of those may give you the
information.

It would be probably be easier to check for OS type, and then call and
parse the output of ifconfig on real oses, and ipconfig on everything
else. Both ifconfig and ipconfig can give you the mac address, and it
won’t take much slicing and dicing of the text to do it.

–Kyle

On Fri, Aug 1, 2008 at 9:03 AM, Glen H. [email protected]
wrote:

What would be the best (clean, cross-platform) way of determining the MAC
address of a host when you have the hostname and IP address?


“Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

And I need more coffee so I can read the posts more clearly, it’s
early I mis-understood the first time :wink:

I know nmap returns this sort of information when you scan a host, and
again, it’s not too hard to slice up the nmap output (even if you
don’t tell nmap to dump xml).

As far as all all ruby way, I’m sure there is one, but I’m unaware of
it.

On Fri, Aug 1, 2008 at 9:16 AM, Kyle S. [email protected]
wrote:

And I need more coffee so I can read the posts more clearly, it’s
early I mis-understood the first time :wink:

I know nmap returns this sort of information when you scan a host, and
again, it’s not too hard to slice up the nmap output (even if you
don’t tell nmap to dump xml).

As far as all all ruby way, I’m sure there is one, but I’m unaware of it.

Thanks Kyle, nmap would be a descent Kludge for the time being. I’ll
keep
my eyes on this thread. I figured there was probably an all ruby way
too
but didn’t find much on google.


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

On Aug 1, 2008, at 8:03 AM, Glen H. wrote:

What would be the best (clean, cross-platform) way of determining
the MAC
address of a host when you have the hostname and IP address?


“Hey brother Christian with your high and mighty errand, Your
actions speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

cfp:~ > sudo gem install macaddr
Successfully installed macaddr-0.0.2
1 gem installed

cfp:~ > ruby -r rubygems -e’ require “macaddr”; p Mac.addr ’
“00:1e:c2:42:42:42”

a @ http://codeforpeople.com/

On 1 Aug, 16:03, Glen H. [email protected] wrote:

[Note: parts of this message were removed to make it a legal post.]

What would be the best (clean, cross-platform) way of determining the MAC
address of a host when you have the hostname and IP address?


“Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

You could craft an ARP packet and put it on the wire. (I’ve written a
couple of classes that uses libnet and pcap to craft and capture ARP
packets if you’re interested.) Of course, this requires the target to
be on the LAN. It might not be the easiest or cleanest way to do this,
but it should work and it should be cross-platform, heh.

On Fri, Aug 1, 2008 at 2:09 PM, StÃ¥le Z.H [email protected] wrote:

-Greg Graffin (Bad Religion)

You could craft an ARP packet and put it on the wire. (I’ve written a
couple of classes that uses libnet and pcap to craft and capture ARP
packets if you’re interested.) Of course, this requires the target to
be on the LAN. It might not be the easiest or cleanest way to do this,
but it should work and it should be cross-platform, heh.

Thanks for the ARP suggestion, I might be interested. Some of the
machines
in question are on the same VLAN however others are not. Right now the
values have to be entered manually and for my area that isn’t too big of
a
pain as I only have around 70 machines. However to go institution wide
that
would be a giant headache so any automation would be better than none.


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

On 1 Aug, 22:48, Glen H. [email protected] wrote:

so loud, I can’t hear a word you’re saying."
in question are on the same VLAN however others are not. Right now the
values have to be entered manually and for my area that isn’t too big of a
pain as I only have around 70 machines. However to go institution wide that
would be a giant headache so any automation would be better than none.


“Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

Alright, you could of course just use a laptop and connect it to each
network in turn if the machines aren’t spread across too many
networks. Just send me an email or whatever if you’re interested in
the ARP injection/capture code. :slight_smile:

On Fri, Aug 1, 2008 at 8:31 PM, Peña, Botp [email protected]
wrote:

table. If you use telnet or ssh, you can create a script to automate and
collate everything. A nice project would be to create a map of your network
showing wc nodes are connected to wc switch/router…

kind regards -botp

Thanks guys, I don’t have direct access to the routers/switches
unfortunately.

This whole thing started as a tool to shutdown certain machines at
certain
times in the evening and then wake them (WOL) at a scheduled time in the
morning to be ready for classes. I only manage three labs so it wasn’t
a
big deal to input the MAC addresses by hand. However the larger IT
department here at the school has taken notice and is interested in
using it
to manage machines institution wide.

Since they have over a thousand machines they manage the current idea is
to
populate both the computer db entries and the group/lab/area db entries
from
LDAP/AD. Hence my quest for an easily automated way to get MAC
addresses,
machine names are easy (LDAP/AD) and IP is also easy, at least assuming
DNS
is correct it is.

I’ve also run into an issue where the machines on the subdomain I work
in
give themselves a different IP than that which the DHCP server thinks
they
should have in DNS. Needless to say this has been a ton of fun. For
some
reason the Primary Domain Controller in this domain has different DNS
records from all the other DNS servers and most annoyingly they are
different from the DHCP servers DNS entries for these machines (The main
DHCP server does DNS too). This is a very Windows problem and is
driving me
crazy since I’m not the admin here.

If anyone knows a quick solution to this issue I would consider paying
weekly tribute :wink: If I can’t get to the right machine I can’t shut it
down
remotely.

That would be the ultimate irony, a tool I wrote to manage my equipment
only
working for others in the company (the main IT department).


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

From: Glen H. [mailto:[email protected]]

Thanks for the ARP suggestion, I might be interested. Some

of the machines in question are on the same VLAN however others

are not. Right now the values have to be entered manually and

for my area that isn’t too big of a pain as I only have around 70

machines. However to go institution wide that would be a giant

headache so any automation would be better than none.

arps do not cross beyond networks, you’ll have to gather the data fr the
junctions. if you have access to the routers/switches, you can see the
arp table. If you use telnet or ssh, you can create a script to automate
and collate everything. A nice project would be to create a map of your
network showing wc nodes are connected to wc switch/router…

kind regards -botp

On Mon, Aug 4, 2008 at 9:13 AM, Glen H. [email protected]
wrote:

machine names are easy (LDAP/AD) and IP is also easy, at least assuming DNS
is correct it is.

If you are talking about mainly Windows boxes and they still have the
NetBIOS bits enabled, try nbtstat:

C:>nbtstat -A 172.16.121.11

Local Area Connection:
Node IpAddress: [172.16.121.54] Scope Id: []

       NetBIOS Remote Machine Name Table

   Name               Type         Status
---------------------------------------------

MAC Address = XX-XX-XX-XX-XX-XX

C:>nbtstat -A 172.16.23.204

Local Area Connection:
Node IpAddress: [172.16.121.54] Scope Id: []

       NetBIOS Remote Machine Name Table

   Name               Type         Status
---------------------------------------------

MAC Address = XX-XX-XX-XX-XX-XX

On Mon, Aug 4, 2008 at 11:25 AM, [email protected] wrote:

Since they have over a thousand machines they manage the current idea is
NetBIOS bits enabled, try nbtstat:

Name Type Status


MAC Address = XX-XX-XX-XX-XX-XX

Thanks brabuhr,

Most of the target machines are definitely Windows boxes and the app
will
probably reside on a Windows box so this would work in that case.

Much appreciated.

-Glen


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)