#!/bin/sh
#
# Copyright (c) 2001 Carey Evans <careye@spamcop.net>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# CAREY EVANS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

set -e

snmpentry () {
  snmpwalk -O qs "$1" "$2" "$3" | while read -r INDEX VALUE
  do
    if [ "$VALUE" = "$4" ]; then
      echo ${INDEX#*.}
      exit
    fi
  done
}

snmpvalue () {
  VALUE=$(snmpget -O qs "$1" "$2" "$3")
  echo ${VALUE#* }
}

snmpmap () {
  local ENTRY
  ENTRY=$(snmpentry "$1" "$2" "$3" "$4")
  if [ ! -z "$ENTRY" ]; then
    snmpvalue "$1" "$2" "$5.$ENTRY"
  fi
}

# Look up the interface index for the named interface.
IFDESCR="Nokia Telecommunications, M11, PPP"
ifIndex=$(snmpmap m11 public ifDescr "$IFDESCR" ifIndex)

# If blank, not found.  (Maybe down?)
if [ -z "$ifIndex" ]; then
  exit 1
fi

# Look up the IP address of this interface.
snmpmap m11 public ipAdEntIfIndex "$ifIndex" ipAdEntAddr

