Linux Bash Script To List All Connected IPs and their network name

 for ip in `netstat -nt|awk '{ print $5 }'|cut -d ":" -f 1|tail -n +3|sort|uniq`; do

     echo $ip;whois $ip|grep -i netname;echo "---------------------------" 

  done

 


77.88.47.40
netname:        YANDEX-77-88-47
---------------------------
40.77.167.5
---------------------------
180.76.15.143
netname:        Baidu
---------------------------
77.88.47.40
netname:        YANDEX-77-88-47
---------------------------
5.255.250.113
netname:        YANDEX-5-255-250
---------------------------
77.88.47.40
netname:        YANDEX-77-88-47
---------------------------
180.76.15.156
netname:        Baidu
---------------------------
77.88.47.40
netname:        YANDEX-77-88-47
---------------------------
207.46.13.111
---------------------------
77.88.47.40
netname:        YANDEX-77-88-47
---------------------------
 

Revised More Efficient/Better Version:

I like this version better becaues it uses the same data from netstat because even a few seconds later the table may have changed and the connection will no longer be visible.  This way is also quicker and more efficient since there are no more multiple calls to the netstat binary.

rawoutput=`netstat -nt`
ipoutput=`echo "$rawoutput"|awk '{ print $5 }'|cut -d ":" -f 1|tail -n +3|sort|uniq`

 for ip in $ipoutput; do
     echo $ip;
     sourceconn=`echo "$rawoutput"|grep -i $ip|awk '{print $4}'|sort|uniq`
     whois=`whois $ip|grep -Ei "netname|range:|route:|cidr:"`
     if [ -z "$whois" ]; then
         whois=`whois $ip|grep -vE "^$|^#|^$|^\["`
     fi

     echo -e "$whois\n$sourceconn\n---------------------------"
  done

 

More Advanced/Slower Version

The above version doesn't always capture the name of the network, here is a more advanced script that is more inclusive and also shows the IP ranges associated with the IP and also the IPs and ports it is actually connected to.

 

 for ip in `netstat -nt|awk '{ print $5 }'|cut -d ":" -f 1|tail -n +3|sort|uniq`; do
     echo $ip;
     sourceconn=`netstat -nt|grep -i $ip|awk '{print $4}'|sort|uniq`
     whois=`whois $ip|grep -Ei "netname|range:|route:|cidr:"`
     if [ -z "$whois" ]; then
         whois=`whois $ip|grep -vE "^$|^#|^$|^\["`
     fi

     echo -e "$whois\n$sourceconn\n---------------------------"
  done

 

 

58.242.83.36
netname:        HUAIBEIBASIP
route:          58.242.0.0/15
route:          58.242.0.0/15
192.168.1.236:22
---------------------------
198.255.100.58
FDCservers.net FDCSERVERS (NET-198-255-0-0-1) 198.255.0.0 - 198.255.127.255
FDCservers.net FDCSERVERS-DENVERENT (NET-198-255-100-0-1) 198.255.100.0 - 198.255.101.255
192.168.1.102:80
192.168.1.189:80
192.168.1.236:80
192.168.1.61:80
---------------------------
185.71.66.10
netname:        StormWall-net
route:          185.71.66.0/24
192.168.1.102:80
192.168.1.189:80
192.168.1.236:80
192.168.1.61:80
--------------------------- 

 


Tags:

linux, bash, ips, ip, netstat, nt, awk, quot, uniq, echo, whois, grep, netname, yandex, baidu,

Latest Articles

  • Recommended SFP+ to RJ45 Adapter Module for Switch Juniper Cisco Ubiquiti TP-Link etc...
  • Bad Power Supply Issue Story Diagnosing Troubleshooting
  • Getting started with AI (Artificial Intelligence) in Linux / Ubuntu using by deploying LLM (Language Learing Models) using Ollama LLMA
  • microk8s kubernetes how to install OpenEBS
  • Flash LSI MegaRAID 2208 to IT mode in Linux Mint/Debian/Ubuntu
  • LSI MegaRAID in Linux Ubuntu / Centos Tutorial Setup Guide megacli
  • Convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/413. convert-im6.q16: no images defined `pts-time.jpg' @ error/convert.c/ConvertImageCommand/3258. solution ImageMagick P
  • Apache PHP sending expires header solution cannot use cache with CDN
  • How to install virt-manager in Mint 22/Ubuntu 22
  • Infiniband Guide
  • python mysql install error: /bin/sh: 1: mysql_config: not found /bin/sh: 1: mariadb_config: not found /bin/sh: 1: mysql_config: not found mysql_config --version
  • FreePBX 17 How To Add a Trunk
  • Docker Container Onboot Policy - How to make sure a container is always running
  • FreePBX 17 How To Add Phones / Extensions and Register
  • Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes. solution
  • Cisco How To Use a Third Party SIP Phone (eg. Avaya, 3CX)
  • Cisco Unified Communication Manager (CUCM) - How To Add Phones
  • pptp / pptpd not working in DD-WRT iptables / router
  • systemd-journald high memory usage solution
  • How to Install FreePBX 17 in Linux Debian Ubuntu Mint Guide