0

How to get connected machine's IP and Mac of SNMP device.

ARP cache is not giving correct details.

sujith lal
  • 19
  • 3
  • are you trying to get this out of a result of a programming language or from the shell or cmd ? – Vidal Mar 11 '19 at 13:14

1 Answers1

0

Example for Linux shell commands (no tag for other languages or Windows at time of writing)

Providing that the machine you want to query does run a SNMP Daemon ( generally snmpd from Net-SNMP under Linux ) and that you know how/are allowed to speak to it ( version 1, 2c or 3 with various community names or usernames/passwords/encoding for v3 ) you may issue the following SNMP requests:

For the test I started a snmpd on a CentOS 7 virtual machine whose main address was 192.168.174.128.

I choose port 1610 over the traditional 161 in order not to sudo or to setcap (snmpd). The snmpd.conf file contents is out of the range of this question.

This first one for IPs

snmptable -v 2c -c private 192.168.174.128:1610 ipAddrTable 

SNMP table: IP-MIB::ipAddrTable

    ipAdEntAddr ipAdEntIfIndex ipAdEntNetMask ipAdEntBcastAddr ipAdEntReasmMaxSize
      127.0.0.1              1      255.0.0.0                0                   ?
  192.168.122.1              3  255.255.255.0                1                   ?
192.168.174.128              2  255.255.255.0                1                   ?

The second command (with 3 columns only printed) for MAC

snmptable -v 2c -c private 192.168.174.128:1610 ifTable | awk -c '{print $1 "\t" $2 "\t\t" $6}'
SNMP    table:      

ifIndex ifDescr     ifPhysAddress
1       lo          up
2       ens33       0:c:29:53:aa:c6
3       virbr0      52:54:0:e6:6b:2f
4       virbr0-nic      52:54:0:e6:6b:2f

When we check under CentOS 7 we get

ifconfig
ens33: ...  mtu 1500
    inet 192.168.174.128  netmask 255.255.255.0  broadcast 192.168.174.255
    inet6 ...
    ether 00:0c:29:53:aa:c6 netmask 255.0.0.0
    ...

lo: ...  mtu 65536
    inet 127.0.0.1
    ...

virbr0: ...  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:e6:6b:2f ...
    ...

Bonus shell command:

snmptranslate -Oaf IF-MIB::ifTable
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable

and

snmptranslate -Oaf IP-MIB::ipAddrTable
.iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable

I do not know why/if there is a single table holding both information.

NGI
  • 852
  • 1
  • 12
  • 31