Skip to content

Instantly share code, notes, and snippets.

@Lucho00Cuba
Created January 4, 2024 14:22
Show Gist options
  • Save Lucho00Cuba/71b1f6f22a52a83dca1db15c6494da33 to your computer and use it in GitHub Desktop.
Save Lucho00Cuba/71b1f6f22a52a83dca1db15c6494da33 to your computer and use it in GitHub Desktop.
bad ss alternative (linux)
#!/usr/bin/env bash
PERL_FILE='ss.perl'
cat << EOF > ./$PERL_FILE
#!/usr/bin/perl
my \$hexip=\$ARGV[0];
my \$hexport=\$ARGV[1];
#print "HEX_IP: \$hexip HEX_PORT: \$hexport\n";
my @ip = map hex(\$_), ( \$hexip =~ m/../g );
my \$ip = join('.',reverse(@ip));
my \$port = hex(\$hexport);
print "addr: \$ip \tport: \$port\n";
EOF
all_node(){
# /proc/net/tcp
echo "VIEW ALL NODE: $(cat /etc/hostname)"
for line in $(awk '{gsub(/:/,":",$2); print $2}' /proc/net/tcp | grep -v 'addr'); do
#printf "%s \n" "$line"
hexip=$(echo $line | awk -F':' '{print $1}' )
hexport=$(echo $line | awk -F':' '{print $2}' )
perl $PERL_FILE $hexip $hexport
done
}
all_pids(){
# proc/PID/net/tcp
for pid in $(find /proc -maxdepth 1 -type d -regex '/proc/[0-9]+'); do
echo "---"
echo "PID TCP LISTEN: $pid"
for line in $(awk '{gsub(/:/,":",$2); print $2}' $pid/net/tcp | grep -v 'addr'); do
#printf "%s \n" "$line"
hexip=$(echo $line | awk -F':' '{print $1}' )
hexport=$(echo $line | awk -F':' '{print $2}' )
perl $PERL_FILE $hexip $hexport
done
done
}
for_pid(){
if [[ $(ls -la /proc/$pid &>/dev/null; echo $?) != 0 ]]; then echo "PID IS NOT EXISTS $1"; exit 1; fi
echo "PID TCP LISTEN: $1"
for line in $(awk '{gsub(/:/,":",$2); print $2}' /proc/$1/net/tcp | grep -v 'addr'); do
#printf "%s \n" "$line"
hexip=$(echo $line | awk -F':' '{print $1}' )
hexport=$(echo $line | awk -F':' '{print $2}' )
perl $PERL_FILE $hexip $hexport
done
}
helpMe(){
cat << EOF
usage: $0 [node|pids|pid_num]
EOF
}
# main args
if [[ "$1" == "node" ]]; then
all_node
elif [[ "$1" == "pids" ]]; then
all_pids
elif [[ $1 =~ ^[0-9]+ ]]; then
for_pid $1
else
helpMe
fi
# clean
rm ./$PERL_FILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment