#!/bin/sh PKT_SIZE=1472 INTERFACE="$1" HOSTNAME="$2" count=$(ping -q -w 1 -M do -c 1 -s $PKT_SIZE -I $INTERFACE $HOSTNAME | grep -cE 'Message too long|100% packet loss') while [ $count -eq 1 ]; do PKT_SIZE=$((PKT_SIZE - 1)) if [ "$PKT_SIZE" -lt "1200" ]; then exit 0 fi count=$(ping -q -w 1 -M do -c 1 -s $PKT_SIZE -I $INTERFACE $HOSTNAME | grep -cE 'Message too long|100% packet loss') done printf "$((PKT_SIZE + 28))"