Mailinglist Archive: opensuse (882 mails)
| < Previous | Next > |
Re: [opensuse] How to find list of hosts on local subnet? [Part Solved]
- From: "David C. Rankin" <drankinatty@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 02 Dec 2010 18:43:46 -0600
- Message-id: <4CF83D42.6090104@xxxxxxxxxxxxxxxxxx>
On 12/02/2010 06:15 PM, John Andersen wrote:
Damn,
I should have waited for your answer :p I did it the hard way with
arpd, but
it worked :p
#!/bin/bash
oifs=$IFS
IFS=$'\n'
declare -a arptable
arptable=( $(sudo arpd -b /var/lib/arpwatch/arpd.db -l) )
printf "\n%-25s %-20s %s\n" "Hostname" "IP" "Mac"
numrec=${#arptable[@]}
for ((i=0;i<$numrec;i++)); do
tmp=${arptable[$i]}
mac=${tmp##* }
ip=${tmp:1} # trim first char
ip="${ip#"${ip%%[![:space:]]*}"}" # remove leading whitespace characters
ip=${ip%% *} # remove mac and trailing whitespace
characters
hn=$(nslookup $ip)
hn=${hn##*= }
hn=${hn%%.*}
[[ $hn =~ Server: ]] && hn="gateway (Linksys)"
[[ $i -gt 0 ]] && printf "%-25s %-20s %s\n" $hn $ip $mac
done
--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx
On 12/2/2010 3:37 PM, David C. Rankin wrote:
Guys,
What would I use to get a list of hosts on the local subnet aside from
dumping
the forward zone in bind or doing a ping -c .1 subnet.1-254? I want to find
something I can call from a script to return the list to either a single
variable or an array.
I'm open to anything, but would prefer a BASH or c solution.
I use my Nexus One. Use to use my iPhone. Lots of apps for that.
When no tools at hand:
ping -c 2 -b <broadcast IP> (something like 192.168.1.255 - You need -b
option)
-c 2 sends just two pings. No need to get crazy.
then immediatly do
/sbin/arp -n
And you will have a list of hosts by IP.
Damn,
I should have waited for your answer :p I did it the hard way with
arpd, but
it worked :p
#!/bin/bash
oifs=$IFS
IFS=$'\n'
declare -a arptable
arptable=( $(sudo arpd -b /var/lib/arpwatch/arpd.db -l) )
printf "\n%-25s %-20s %s\n" "Hostname" "IP" "Mac"
numrec=${#arptable[@]}
for ((i=0;i<$numrec;i++)); do
tmp=${arptable[$i]}
mac=${tmp##* }
ip=${tmp:1} # trim first char
ip="${ip#"${ip%%[![:space:]]*}"}" # remove leading whitespace characters
ip=${ip%% *} # remove mac and trailing whitespace
characters
hn=$(nslookup $ip)
hn=${hn##*= }
hn=${hn%%.*}
[[ $hn =~ Server: ]] && hn="gateway (Linksys)"
[[ $i -gt 0 ]] && printf "%-25s %-20s %s\n" $hn $ip $mac
done
--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx
| < Previous | Next > |