host discovery using bash


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting host discovery using bash
# 1  
Old 03-15-2008
host discovery using bash

I am trying to make a bash script to scan subnets to see what hosts are available. Is it correct that you can not make the ping command time out less than a second? The script below works, but can take up to 255 seconds which is a bit long Smilie Is there a way to solve this using bash only?

<code>
subnet=192.168.2.
addr=1
while [ $addr -lt 256 ]; do
ping -c 1 -t 1 $subnet$addr > /dev/null && echo Found $subnet$addr
let addr=addr+1
done
</code>
# 2  
Old 03-17-2008
I think I saw a program called "uping" or "mping" which had more fine-grained timing controls (I think part of the MRTG suite ... could have been "fastping" too).

Two other ideas come to mind.

1. Run asynchronously. Spawn off a big bunch of pings and even if some of them take one second or more, the whole bunch will finish in one or two seconds (provided you have the CPU and bandwidth to run enough of them in parallel).

Code:
subnet=192.168.2.
for addr in `seq 1 1 255 `; do
  ( ping -c 1 -t 1 $subnet$addr > /dev/null && echo Found $subnet$addr ) &
done

2. Is ping really what you want? If you have a hunch about a port you could expect to be open, netcat could do this much faster (and probably produce more accurate results -- the fact that ping works doesn't really mean the host is up and working correctly).
era
# 3  
Old 03-17-2008
I think this is the "fast ping" I was thinking of. fping.com Looks like it can handle the whole problem you have.

It's used by a system called SmokePing, by the MRTG author, wich is however apparently a separate module. SmokePing - Smokeping::probes::FPing
era
# 4  
Old 03-23-2008
Era, I am so sorry for the late reply.

Your script is perfect! Thanks very much for the input.
I really just want to know where my machines are on the network . My DHCP server is so basic that it does not even show me the current leases.

Last edited by bronkeydain; 03-23-2008 at 10:26 PM.. Reason: fix typo
# 5  
Old 03-24-2008
If it's your network then you could also simply do a ping to the broadcast address, although I guess a some modern machines will no longer respond to broadcast ping (at least it's an option).
# 6  
Old 03-24-2008
If i were you, i would have nmap

~s3g4
# 7  
Old 03-24-2008
@era... ah yes simple command even better. I did not know you could do a broadcast ping :noob: All my machines respond to ping -b 192.168.2.255 so this works just fine for me.

Thanks again
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Telnet Bash Script (Connection closed by foreign host.)

Hello Everyone, My following script is giving me problems, when the SIP trunk goes down and the telnet session is started and just when the command is about to complete the connection is closed then script restarts. I have noticed that as soon the script types in "sys re" or "sys rebo" or... (6 Replies)
Discussion started by: jeetz
6 Replies

2. Solaris

Need to recover/move diskgroup from failed host to another host

Hi All I am having VxVm on two Solaris hosts. host1 is using disk group dgHR. right now this server went down due to hardware fault. Not I need to import this dgHR into host2 server. Please let me know the procedure for the same. (1 Reply)
Discussion started by: amity
1 Replies

3. Shell Programming and Scripting

Writing a bash script using host

Im trying to write a script using the host command but its not working properly. I cant understand what Im doing wrong. When I use it at the command prompt, it works fine. But its being used actually in the script, it says its not found: 2 SERVFAIL. Can anyone help me? Here's what I have so far: no... (6 Replies)
Discussion started by: relsha
6 Replies

4. Shell Programming and Scripting

Bash script to Automate the Virtual Host creation process!!

Hi all, This is my sample code in /etc/httpd/conf.d/applications.conf file currently we are creating subdomain mannually for every new subdomain. I want to automate this process througs bash script , how its possible. <VirtualHost *:80> ServerName google.com ServerAlias google.com... (5 Replies)
Discussion started by: anishkumarv
5 Replies

5. UNIX for Dummies Questions & Answers

Transfer large number of files host to host

Hello.... I have two servers, one has an empty / and the other has a subdirectory with a large number (4 gig) with many, many files. I need a way to transfer the files en masse from the server with the large number of files to the one that is essentially blank. I don't have space on the used... (16 Replies)
Discussion started by: blaine.miller
16 Replies

6. UNIX for Advanced & Expert Users

Help! How to find the local host after few ssh hops to remote host???

I do a ssh to remote host(A1) from local host(L1). I then ssh to another remote(A2) from A1. When I do a who -m from A2, I see the "connected from" as "A1". => who -m userid pts/2 2010-03-27 08:47 (A1) I want to identify who is the local host who initiated the connection to... (3 Replies)
Discussion started by: gomes1333
3 Replies

7. Shell Programming and Scripting

running commands to remote host from centralized host

Gurus/Experts We have a centralized UNIX/Solaris server from where we can actually ssh to all other UNIX/Solaris servers...I need to write a script that reside on this centerlized server and do FileSystem monitoring (basically run df -h or -k) of other remote servers and then send an email to me... (6 Replies)
Discussion started by: anjum.suri
6 Replies

8. UNIX for Dummies Questions & Answers

Bash Script to check Remote Host Connection

Hi all, Can anyone tell/guide me how to check remote host is up/running using bash script? Thanks. Zulfiqar (5 Replies)
Discussion started by: zulfikarmd
5 Replies

9. Solaris

How to delete the files from local host to remote host

Hi all, i am copying .gz files from production server to development server using "scp" command.my requirement is after copying .gz files i want to delete old .gz files(two days back) in development server from production server. like this way i need to delelte .log ,.z and .dmp files... (3 Replies)
Discussion started by: krishna176
3 Replies

10. IP Networking

QNX host cannot ping SCO host, vice versa

The problem I am facing now is that the QNX host could not ping the SCO host and vice versa. They are in the same domain, ie, 172.20.3.xx. As I am very new to Unix, I guess I must have missed out some important steps. Pls help... Thanx alot (2 Replies)
Discussion started by: gavon
2 Replies
Login or Register to Ask a Question