Skip to content

Commit

Permalink
Merge pull request #85 from nsacyber/issue/84
Browse files Browse the repository at this point in the history
[#84] Retrieve permanent MAC address on NICs.
  • Loading branch information
iadgovuser29 committed Jan 23, 2020
2 parents ab722a5 + 8c96443 commit d2d95fd
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 25 deletions.
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,14 @@ ospackage {
os=LINUX
arch=NOARCH
version='1.1.3'
release='3'
release='4'

into '/opt/paccor'
user 'root'
fileMode=0755

requires('dmidecode', '3.2', GREATER | EQUAL)
requires('ethtool')
requires('jq')
requires('lshw')
requires('vim-common')
Expand Down
15 changes: 8 additions & 7 deletions scripts/allcomponents.sh
Original file line number Diff line number Diff line change
Expand Up @@ -570,11 +570,12 @@ parseNicData () {

for ((i = 0 ; i < numHandles ; i++ )); do
manufacturer=$(lshwGetVendorIDFromBusItem "$i")
model=$(lshwGetProductIDFromBusItem "$i")
serialConstant=$(lshwGetSerialFromBusItem "$i")
model=$(lshwGetProductIDFromBusItem "$i")
serialConstant=$(lshwGetLogicalNameFromBusItem "$i")
serialConstant=$(ethtoolPermAddr "$serialConstant")
serialConstant=$(standardizeMACAddr "${serialConstant}")
serial=""
revision=$(lshwGetVersionFromBusItem "$i")
revision=$(lshwGetVersionFromBusItem "$i")

if [[ -z "${manufacturer// }" ]] && [[ -z "${model// }" ]] && (! [[ -z "${serialConstant// }" ]] || ! [[ -z "${revision// }" ]]); then
manufacturer=$(lshwGetVendorNameFromBusItem "$i")
Expand Down Expand Up @@ -644,9 +645,9 @@ parseHddData () {

for ((i = 0 ; i < numHandles ; i++ )); do
manufacturer=$(lshwGetVendorIDFromBusItem "$i")
model=$(lshwGetProductIDFromBusItem "$i")
serial=$(lshwGetSerialFromBusItem "$i")
revision=$(lshwGetVersionFromBusItem "$i")
model=$(lshwGetProductIDFromBusItem "$i")
serial=$(lshwGetSerialFromBusItem "$i")
revision=$(lshwGetVersionFromBusItem "$i")

if [[ -z "${manufacturer// }" ]] && [[ -z "${model// }" ]] && (! [[ -z "${serial// }" ]] || ! [[ -z "${revision// }" ]]); then
model=$(lshwGetProductNameFromBusItem "$i")
Expand Down Expand Up @@ -705,7 +706,7 @@ parseGfxData () {

if [[ -z "${manufacturer// }" ]] && [[ -z "${model// }" ]] && (! [[ -z "${serial// }" ]] || ! [[ -z "${revision// }" ]]); then
manufacturer=$(lshwGetVendorNameFromBusItem "$i")
model=$(lshwGetProductNameFromBusItem "$i")
model=$(lshwGetProductNameFromBusItem "$i")
fi

if [[ -z "${manufacturer// }" ]]; then
Expand Down
19 changes: 17 additions & 2 deletions scripts/hw.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ lshwNumBusItems () {
lshwGetVendorIDFromBusItem () {
itemnumber="${1}"
result=""
str=$(echo "${busitems[$itemnumber]}" | grep -e "^vendor:.*[^\[]\[.\+$" | sed 's/^vendor:.*[^\[]\[\([0-9A-Fa-f]\{4\}\)\]$/\1/')
str=$(echo "${busitems[$itemnumber]}" | grep -e "^vendor:.*[^\[]\[.\+$" | sed 's/^vendor:.*[^\[]\[\([0-9A-Fa-f]\+\)\]$/\1/')
if [ -n "$str" ]; then
result=$str
fi
Expand All @@ -65,7 +65,7 @@ lshwGetVendorIDFromBusItem () {
lshwGetProductIDFromBusItem () {
itemnumber="${1}"
result=""
str=$(echo "${busitems[$itemnumber]}" | grep -e "^product:.*[^\[]\[.\+$" | sed 's/^product:.*[^\[]\[[0-9A-Fa-f]\{4\}:\([0-9A-Fa-f]\{4\}\)\]$/\1/')
str=$(echo "${busitems[$itemnumber]}" | grep -e "^product:.*[^\[]\[.\+$" | sed 's/^product:.*[^\[]\[[0-9A-Fa-f]\+:\([0-9A-Fa-f]\+\)\]$/\1/')
if [ -n "$str" ]; then
result=$str
fi
Expand All @@ -89,6 +89,15 @@ lshwGetSerialFromBusItem () {
fi
printf "$result"
}
lshwGetLogicalNameFromBusItem () {
itemnumber="${1}"
result=""
str=$(echo "${busitems[$itemnumber]}" | grep -e "^logical name:.*$" | sed 's/^logical name: \(.\+\)$/\1/')
if [ -n "$str" ]; then
result=$str
fi
printf "$result"
}
lshwGetVendorNameFromBusItem () {
itemnumber="${1}"
result=""
Expand Down Expand Up @@ -131,6 +140,12 @@ lshwBusItemWirelessCap () {
fi
printf "$result"
}
ethtoolPermAddr () {
iface="${1}"
result=""
str=$(ethtool -P "$iface" 2> /dev/null | grep -e "^Perm.*$" | sed 's/^Permanent address: \([0-9a-f:]\+\)$/\1/')
printf "$result"
}
#lshwParse "disk"
#lshwNetwork
#echo ${items[0]}
Expand Down
36 changes: 21 additions & 15 deletions scripts/smbios.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,23 @@ dmidecodeHandles () {
}
dmidecodeData () {
handle="${1}"
str=$(dmidecode -H "$handle" -u | awk '/Header and Data:/{f=1;next} /Strings/{f=0} f' | tr "\n\r\t" ' ' | tr -s ' ' | sed -e 's/^[[:space:]]*//' | sed -e 's/[[:space:]]*$//')
old="$IFS"
IFS=' '
tableData=($str)
IFS="$old"
if [[ $handle =~ ^0x[0-9A-Fa-f]+$ ]]; then
str=$(dmidecode -H "$handle" -u | awk '/Header and Data:/{f=1;next} /Strings/{f=0} f' | tr "\n\r\t" ' ' | tr -s ' ' | sed -e 's/^[[:space:]]*//' | sed -e 's/[[:space:]]*$//')
old="$IFS"
IFS=' '
tableData=($str)
IFS="$old"
fi
}
dmidecodeStrings () {
handle="${1}"
str=$(dmidecode -H "$handle" -u | awk '/Strings/{f=1;next} /^\w+$/{f=0} f' | sed 's/^[^"]*$//g' | sed 's/^\w+//g' | sed '/^[[:space:]]*$/d')
old="$IFS"
IFS=$'\n'
tableStrings=($str)
IFS="$old"
if [[ $handle =~ ^0x[0-9A-Fa-f]+$ ]]; then
str=$(dmidecode -H "$handle" -u | awk '/Strings/{f=1;next} /^\w+$/{f=0} f' | sed 's/^[^"]*$//g' | sed 's/^\w+//g' | sed '/^[[:space:]]*$/d')
old="$IFS"
IFS=$'\n'
tableStrings=($str)
IFS="$old"
fi
}
dmidecodeParseHandle () {
handle="${1}"
Expand All @@ -44,11 +48,13 @@ dmidecodeGetByte () {
dmidecodeGetString () {
strref="${1}"
str=""
strrefDec=$(printf "%d" "0x""$strref")
lenDec=$(printf "%d" "0x"${#tableStrings[@]})
if [ $strrefDec -le $lenDec ] && [ $strrefDec -gt 0 ]; then
str="${tableStrings[$strrefDec-1]}"
str=$(printf "$str" | sed 's/^[ \t]*"\?//;s/"\?[ \t]*$//')
if [[ $strref =~ ^[0-9A-Fa-f]+$ ]]; then
strrefDec=$(printf "%d" "0x""$strref")
lenDec=$(printf "%d" "0x"${#tableStrings[@]})
if [ $strrefDec -le $lenDec ] && [ $strrefDec -gt 0 ]; then
str="${tableStrings[$strrefDec-1]}"
str=$(printf "$str" | sed 's/^[ \t]*"\?//;s/"\?[ \t]*$//')
fi
fi
printf "$str"
}
Expand Down

0 comments on commit d2d95fd

Please sign in to comment.