• Get application security done the right way! Detect, Protect, Monitor, Accelerate, and more…
  • One of the challenging tasks while working in the project team is to perform the necessary connectivity test though services don’t exist.

    This is often you have to do when you are working in a DMZ environment for migration or new projects. Let’s take a real-time example – you are working on migration, and you have to ensure connectivity exists between application “A” to “B” on a particular port.

    Well. It’s straightforward you can perform telnet but how about when “B” doesn’t have any service running? That’s where you need the port listener to help in this situation.

    If you have a similar situation or feel this would be beneficial for you at work, then here are few ways to achieve this in Windows or UNIX platform.

    To create post listener in Windows OS

    To have a port listener on a specific port in Windows, you can use the “Port Listener” utility.

    This utility is available for free for Windows 95 to Windows 10.

    port-listener-windows

    • Download Post Listener as zip or exe format from here
    • In this guide, I will download the exe format
    • Double click on downloaded postlistener.exe file
    • It will prompt to select the location to extract the files, click on unzip

    port-listener-extract

    • Go to path where you have extracted the files, in this example; I have at c:listener

    port-listener-folder

    • Double click on listener to start the utility
    • Enter the port number which you want to test and click on start

    port-listener-listening

    • In the above example, I have started listening port on 5500, and it’s time to validate if it’s running.

    Open a command prompt and run netstat to validate if port 5500 is listening

    netstat-listening-windows

    So yes, now I have created a port listener successfully in Windows.

    To create post listener in Linux OS

    The procedure is slightly different in Linux; here we will use netcat (nc) command to start the listener.

    • To install nc, you can use yum command
    yum install nc
    • Once installed, use the following command to start the port listener as 5500 in the background.
    nc –l 5500 &
    • To validate, let’s use netstat command
    [[email protected] ~]# netstat -anlp |grep 5500
    tcp       0     0 0.0.0.0:5500               0.0.0.0:*                   LISTEN 
       21085/nc          
    [[email protected] ~]#

    So here I have port 5500 listened successfully. Doing this in Linux is slightly more comfortable, isn’t it?

    To create a port listener using Python

    The above two examples are limited to OS. How about having a python script that can work on Windows or UNIX?

    Well, I found the below python code which works on Windows and Linux both. Create a file – let’s say portlistener.py with below code

    '''    Simple socket server using threads
    '''
    import socket
    import sys
    HOST = ''   # Symbolic name, meaning all available interfaces
    PORT = 5500 # Arbitrary non-privileged port
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print 'Socket created'
    #Bind socket to local host and port
    try:
        s.bind((HOST, PORT))
    except socket.error as msg:
        print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
        sys.exit()
    print 'Socket bind complete'
    #Start listening on socket
    s.listen(10)
    print 'Socket now listening'
    #now keep talking with the client
    while 1:
        #wait to accept a connection - blocking call
        conn, addr = s.accept()
        print 'Connected with ' + addr[0] + ':' + str(addr[1])
    s.close()

    Save the file and run it with python command as shown below

    [[email protected] ~]# python portlistener.py
    Socket created
    Socket bind complete
    Socket now listening

    Interested in learning Python? Check out this online course.

    I hope the above procedure helps you to create a port listener for the connectivity tests.