Bash scripting help...

Jacques B. jjrboucher at gmail.com
Mon Aug 7 22:28:42 UTC 2006


On 8/7/06, Jacques B. <jjrboucher at gmail.com> wrote:
> Or even easier:
>
> ip=$(/sbin/arping -f -I eth0 10.255.255.1 | grep Unicast | awk '{print
> substr($5,2,17)}')
>
> This greps for the line with the MAC, then using awk prints out the
> 5th field (space delimited by default so this is the MAC with the [
> and ]), and using substr I carve out the MAC by saying I want the 5th
> field ($5), starting at the 2nd character, for 17 characters.
>
> Jacques B.
>
Of course both examples require you to put in the IP you wish to
target.  Remember that if the IP is on another subnet that the MAC
that you will get will be the last physical hop to you, so the
router/switch/ at the mouth of your subnet.  Check your gateway's MAC.
 If you get that as a reply, then you know it's something outside of
your network (if you aren't sure to start off with).  You could always
write a condition in your script where you'd get the MAC of your
gateway and return a warning to the end user if they query an IP other
than the gateway that returns the gateway's MAC.

Jacques B.




More information about the fedora-list mailing list