#!/bin/bash # Display help message if [[ "$1" == "-h" || "$1" == "--help" ]]; then echo "usage: $(basename $0) " echo "Outputs a randomly generated IP address and port number based on the MD5 hash of the input string." echo "" exit 0 fi # Check that input string is provided if [ -z "$1" ]; then echo "error: input string not provided." echo "usage: $(basename $0) " echo "" exit 1 fi input_str="$1" # Hash the input string using MD5 and extract the first 4 bytes hash_bytes="$(echo -n $input_str | md5sum | cut -d' ' -f1 | head -c 8)" # Create an IP address in the 127.0.0.0/8 range using the first 3 bytes of the hash ip="127.$(printf '%d.%d.%d' 0x${hash_bytes:0:2} 0x${hash_bytes:2:2} 0x${hash_bytes:4:2})" # Use the last 2 bytes of the hash to generate a port number in the range 1024-65535 port="$((0x${hash_bytes:6:2} % (65535 - 1024) + 1024))" echo "$ip:$port"