Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Bash script, find the next closed (not in use) port from some port range. Post 303036751 by drysdalk on Wednesday 10th of July 2019 10:56:17 AM
Old 07-10-2019
Hi,

In terms of your script itself as a solution to your problem, a change like this should work:

Code:
#!/bin/bash
IP=$1
first_port=$2
last_port=$3
function scanner

{
for ((port=$first_port; port<=$last_port; port++))
        do
                if ! (echo >/dev/tcp/$IP/$port)2>/dev/null
                then
                        echo $port
                        return
                fi
        done
}

scanner

This will cause the first TCP port that cannot have a blank line written to it by the echo command to be echoed out to standard output. The key is the return statement, which will cause the function to end as soon as it is executed. So once we find the first port we can't write a blank line to, we print it out and return control to the next line of the script (which doesn't exist, and so the script ends at that point).

Now, a better question: what is it you actually need to do here, and why ? This script might well work for certain ports in certain circumstances, but a far better bet here would be to use a utility that is dedicated to the purpose of port scanning (like nmap, for example) rather than trying to re-invent the wheel with a shell script.
 

9 More Discussions You Might Find Interesting

1. SCO

tcp port always closed in inetd

sco unix 5.0.x, several weeks ago, I add a telnet-like service in inetd.conf, it runs well for 100 network terminals. But nowdays, the terminals can connect to server successfully after booting machine, but several hours later, can not connect. "netstat -p tcp -a" can NOT find the port in... (1 Reply)
Discussion started by: shark_gao
1 Replies

2. AIX

TCP/UDP port range for default AIX NFS?

May I know what is the TCP/UCP port range for any default AIX NFS? Based on rpcinfo -p, I got the following output: program vers proto port service 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100000 4 ... (4 Replies)
Discussion started by: famasutika
4 Replies

3. Solaris

How to enable Serial port on ILOM, when Network Port is enabled in parallel

Hi Everyone, In my environment, I have few T5220. On the iLOM Management Card, I have both Network and Serial port are cabled, I don't have any issues while I try to connect using Network Management port, but when I try to connect the serial port for the same server which is actually connected... (3 Replies)
Discussion started by: bobby320
3 Replies

4. Shell Programming and Scripting

Block local and remote port with iptables - Script BASH

Hello I'm beginner in the linux scripting and i would like to get help. I want to create a script that can block one or more Port even see all the TCP port. The ports must be blocked even when starting my machine. Of course requires a second script which will allow the ports that you want to... (0 Replies)
Discussion started by: houstaf
0 Replies

5. AIX

Allow port range using IPsec?

Hi Guys, Please could you tell me if it is possible to have a single rule/filter to allow a certain port range instead of a separate rule for each port? I'm sure it must be possible but I am unable to find the syntax. Thanks Chris (4 Replies)
Discussion started by: chrisstevens
4 Replies

6. UNIX for Dummies Questions & Answers

iptables to block port 25 only to a certain range

I want to limit all *outbound* traffic on eth0 (or all *.*) on port 25 to a specific (allowed) range... I.E. 192.168.1.5 (local ip) tries to connect to 1.2.3.4:25 (outside real world ip) It can proceed because 1.2.3.0/24 is the allowed range Now, 192.168.1.5 (local ip) tries to connect to... (1 Reply)
Discussion started by: holyearth
1 Replies

7. Red Hat

Which is the effective ephemeral port range in Linux 2.6 for this set up?

In my Linux system ephemeral port range is showing different ranges as follows $ cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000  cat /etc/sysctl.conf | grep net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 9000 65500 Which will be the effective ephemeral port... (5 Replies)
Discussion started by: steephen
5 Replies

8. Solaris

How to find port number wwn of particular port on dual port HBA,?

please find the below o/p for your reference bash-3.00# fcinfo hba-port HBA Port WWN: 21000024ff295a34 OS Device Name: /dev/cfg/c2 Manufacturer: QLogic Corp. Model: 375-3356-02 Firmware Version: 05.03.02 FCode/BIOS Version: BIOS: 2.02; fcode: 2.01;... (3 Replies)
Discussion started by: sb200
3 Replies

9. AIX

Forcing named 9 to use a fixed ephemeral port range

I'll start with I'm not an AIX expert, I inherited a lot of AIX servers to maintain. My problem is on AIX 7.1 TL4 SP4 environments. I'm running named as a DNS forwarder only to internal DNS servers. These AIX servers have a customized UDP ephemeral port range to avoid conflicting with the... (0 Replies)
Discussion started by: seanc
0 Replies
AUSCOPE(1)						      General Commands Manual							AUSCOPE(1)

NAME
auscope - Network Audio System Protocol Filter SYNOPSIS
auscope [ option ] ... DESCRIPTION
auscope is an audio protocol filter that can be used to view the network packets being sent between an audio application and an audio server. auscope is written in Perl, so you must have Perl installed on your machine in order to run auscope. If your Perl executable is not installed as /usr/local/bin/perl, you should modify the first line of the auscope script to reflect the Perl executable's location. Or, you can invoke auscope as perl auscope [ option ] ... assuming the Perl executable is in your path. To operate, auscope must know the port on which it should listen for audio clients, the name of the desktop machine on which the audio server is running and the port to use to connect to the audio server. Both the output port (server) and input port (client) are automati- cally biased by 8000. The output port defaults to 0 and the input port defaults to 1. ARGUMENTS
-i<input-port> Specify the port that auscope will use to take requests from clients. -o<output-port> Determines the port that auscope will use to connect to the audio server. -h<audio server name> Determines the desktop machine name that auscope will use to find the audio server. -v<print-level> Determines the level of printing which auscope will provide. The print-level can be 0 or 1. The larger numbers provide greater output detail. EXAMPLES
In the following example, mcxterm is the name of the desktop machine running the audio server, which is connected to the TCP/IP network host tcphost. auscope uses the desktop machine with the -h command line option, will listen for client requests on port 8001 and connect to the audio server on port 8000. Ports (file descriptors) on the network host are used to read and write the audio protocol. The audio client auplay will connect to the audio server via the TCP/IP network host tcphost and port 8001: auscope -i1 -o0 -hmcxterm auplay -audio tcp/tcphost:8001 dial.snd In the following example, the auscope verbosity is increased to 1, and the audio client autool will connect to the audio server via the network host tcphost, while displaying its graphical interface on another server labmcx: auscope -i1 -o0 -hmcxterm -v1 autool -audio tcp/tcphost:8001 -display labmcx:0.0 SEE ALSO
nas(1), perl(1) COPYRIGHT
Copyright 1994 Network Computing Devices, Inc. AUTHOR
Greg Renda, Network Computing Devices, Inc. 1.9.3 AUSCOPE(1)
All times are GMT -4. The time now is 09:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy