Нет гарантированного способа сделать это, если рассматриваемые машины не взаимодействуют.
Лучшее, что вы можете сделать, - это сканировать вероятные адреса и проверять каждый из них, чтобы выяснить, можете ли вы получить ответ - это может быть что угодно, от простого эхо-запроса ICMP (ping) до сложного искаженного пакета, который пытается получить ответ от удаленного хоста.
Требуемый уровень сложности и то, сработает ли он вообще, полностью зависит от того, насколько сильно огненостен и т.д., о котором идет речь.
Как уже заметил комментатор, есть целые программы, такие как nmap
, посвященные попыткам обнаружить эту информацию, что дает некоторое представление о том, насколько это может быть нетривиально.
С другой стороны, если хосты взаимодействуют, тогда может быть достаточно простого широковещательного ICMP-запроса.