T
Theodore Knab
Is there a cleaner way to doing this ?
Here is my code it finds bad mac addresses.
#start of source code
#!/usr/bin/ruby -w
#find_bad_mac.rb
#description takes input of mac addresses and finds the bad ones
#
#usage pipe a file of mac addresses to this program
#
#cat mac_addresses | find_bad_mac.rb
linecounter = 0
def check_zero(string)
#checks zeros
#valid base 16 numbers are '00' but not '0'
if string.to_s == "00"
return string=0
else
return string
end
end
while gets
#a will hold an array of base 16 numbers
a = []
#line counter
linecounter = linecounter + 1
mac_address = $_.chomp!
#mac address is transformed into an array called 'a'
a = $_.split(/:/)
l = linecounter.to_s
#each element in array is checked
a.each { |element|
print "debug " + l + " element:" + element + "\n"
#tranforms the element into a number
b = element.to_s.hex
#zeros are sometimes bad but not always
if b == 0
#if number is 0 check to see if it is '00' which is a valid base 16 number
#or '0' which is not a valid base 16 number.
zero = check_zero(element.to_s)
#if the number is not base 16
if zero != 0
#create a string with all messed up mac entry
s = a.join(":")
print "error with mac address entry " + s.to_s + "\n"
end
end
}
print "-----------------------------------------------\n"
end
##########################################
#end of source code
~
--
Here is my code it finds bad mac addresses.
#start of source code
#!/usr/bin/ruby -w
#find_bad_mac.rb
#description takes input of mac addresses and finds the bad ones
#
#usage pipe a file of mac addresses to this program
#
#cat mac_addresses | find_bad_mac.rb
linecounter = 0
def check_zero(string)
#checks zeros
#valid base 16 numbers are '00' but not '0'
if string.to_s == "00"
return string=0
else
return string
end
end
while gets
#a will hold an array of base 16 numbers
a = []
#line counter
linecounter = linecounter + 1
mac_address = $_.chomp!
#mac address is transformed into an array called 'a'
a = $_.split(/:/)
l = linecounter.to_s
#each element in array is checked
a.each { |element|
print "debug " + l + " element:" + element + "\n"
#tranforms the element into a number
b = element.to_s.hex
#zeros are sometimes bad but not always
if b == 0
#if number is 0 check to see if it is '00' which is a valid base 16 number
#or '0' which is not a valid base 16 number.
zero = check_zero(element.to_s)
#if the number is not base 16
if zero != 0
#create a string with all messed up mac entry
s = a.join(":")
print "error with mac address entry " + s.to_s + "\n"
end
end
}
print "-----------------------------------------------\n"
end
##########################################
#end of source code
~
--