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
sane-find-scanner(1)					   SANE Scanner Access Now Easy 				      sane-find-scanner(1)

NAME
sane-find-scanner - find SCSI and USB scanners and their device files SYNOPSIS
sane-find-scanner [-h|-?] [-v] [-q] [-p] [-f] [-F filename] [devname] DESCRIPTION
sane-find-scanner is a command-line tool to find SCSI and USB scanners and determine their Unix device files. Its primary aim is to make sure that scanners can be detected by SANE backends. For SCSI scanners, it checks the default generic SCSI device files (e.g., /dev/sg0) and /dev/scanner. The test is done by sending a SCSI inquiry command and looking for a device type of "scanner" or "processor" (some old HP scanners seem to send "processor"). So sane-find-scanner will find any SCSI scanner connected to those default device files even if it isn't supported by any SANE backend. For USB scanners, first the USB kernel scanner device files (e.g. /dev/usb/scanner0), /dev/usb/scanner, and /dev/usbscanner) are tested. The files are opened and the vendor and device ids are determined, if the operating system supports this feature. Currently USB scanners are only found this way if they are supported by the Linux scanner module or the FreeBSD or OpenBSD uscanner driver. After that test, sane-find-scanner tries to scan for USB devices found by the USB library libusb (if available). There is no special USB class for scanners, so the heuristics used to distinguish scanners from other USB devices is not perfect. sane-find-scanner also tries to find out the type of USB chip used in the scanner. If detected, it will be printed after the vendor and product ids. sane-find-scanner will even find USB scan- ners, that are not supported by any SANE backend. sane-find-scanner won't find most parallel port scanners, or scanners connected to proprietary ports. Some parallel port scanners may be detected by sane-find-scanner -p. At the time of writing this will only detect Mustek parallel port scanners. OPTIONS
-h, -? Prints a short usage message. -v Verbose output. If used once, sane-find-scanner shows every device name and the test result. If used twice, SCSI inquiry informa- tion and the USB device descriptors are also printed. -q Be quiet. Print only the devices, no comments. -p Probe parallel port scanners. -f Force opening all explicitly given devices as SCSI and USB devices. That's useful if sane-find-scanner is wrong in determining the device type. -F filename filename is a file that contains USB descriptors in the format of /proc/bus/usb/devices as used by Linux. sane-find-scanner tries to identify the chipset(s) of all USB scanners found in such a file. This option is useful for developers when the output of "cat /proc/bus/usb/devices" is available but the scanner itself isn't. devname Test device file "devname". No other devices are checked if devname is given. EXAMPLE
sane-find-scanner -v Check all SCSI and USB devices for available scanners and print a line for every device file. sane-find-scanner /dev/scanner Look for a (SCSI) scanner only at /dev/scanner and print the result. sane-find-scanner -p Probe for parallel port scanners. SEE ALSO
sane(7), sane-scsi(5), sane-usb(5), scanimage(1), xscanimage(1), xsane(1), sane-"backendname"(5) AUTHOR
Oliver Rauch, Henning Meier-Geinitz and others SUPPORTED PLATFORMS
USB support is limited to Linux (kernel, libusb), FreeBSD (kernel, libusb), NetBSD (libusb), OpenBSD (kernel, libusb). Detecting the vendor and device ids only works with Linux or libusb. SCSI support is available on Irix, EMX, Linux, Next, AIX, Solaris, FreeBSD, NetBSD, OpenBSD, and HP-UX. BUGS
No support for most parallel port scanners yet. Detection of USB chipsets is limited to a few chipsets. 13 Jul 2008 sane-find-scanner(1)
All times are GMT -4. The time now is 06:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy