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
asadmin-list-jndi-resources(1AS)				   User Commands				  asadmin-list-jndi-resources(1AS)

NAME
list-jndi-resources - gets all the JNDI resources SYNOPSIS
list-jndi-resources --user admin_user [--password admin_password] [--host localhost] [--port 4848] [--secure |-s] [--passwordfile filename] [--terse=false] [--echo=false] [--interactive=true] Gets all the JNDI resources. This command is supported in remote mode only. OPTIONS
--user authorized domain application server administrative username. --password password to administer the domain application server. --host machine name where the domain application server is running. --port port number of the domain application server listening for administration requests. --secure if true, uses SSL/TLS to communicate with the domain application server. --passwordfile file containing the domain application server password. --terse indicates that any output data must be very concise, typically avoiding human-friendly sentences and favoring well- formatted data for consumption by a script. --echo setting to true will echo the command line statement on the standard output. --interactive prompts you for the required options that are not already specified. Example 1: Using the list-jndi-resource command asadmin> list-jndi-resource --user admin1 --password adminadmin1 --host pigeon --port 5001 Command list-jndi-resources executed successfully EXIT STATUS
0 command executed successfully 1 error in executing the command asadmin-create-jndi-resource(1AS), asadmin-delete-jndi-resource(1AS) J2EE 1.4 SDK March 2004 asadmin-list-jndi-resources(1AS)
All times are GMT -4. The time now is 08:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy