Насколько я знаю, нет, вы не можете отправлять необработанные ICMP-пакеты без корневого доступа. Это не ограничение Lua, это ограничение ОС.
Чтобы получить root-доступ, лучше всего иметь небольшую хорошо протестированную программу с SUID-root, а не заменять все приложение с Lua на SUID-root. Это означает, что вы в конечном итоге будете использовать os.execute (). И вместо того, чтобы писать свою собственную программу, предоставляемая ОС ping
кажется хорошей командой для решения вашей проблемы.
Я согласен, что это не идеально (тем более что это создает специфический для ОС код для обработки различных команд ping). Но без вызова функции SUID, я не думаю, что есть лучший способ.