Как отличить роутер от компьютера?
По ip узнать MAC
По MAC узнать производителя (есть таблицы и стандарты).
Формально, с точки зрения сети роутер от компьютера ничем не отличается. (Любой компьютер может быть роутером)
Далее, такие средства как NMAP могут узнать тип устройства, на основе эвристических алгоритмов.
В общем случае - никак. Если я на Windows Server ставлю две сетевки и начинаю межуд ними передавать трафик - я роутер или нет? Или я все же сервер? :)
Что можно узнать.
- производителя устройства. Узнать можно почти всегда, получив MAC устройства и сравнив с выложенной в тырнет таблицей блоков MAC-адресов
- Запущенные сервисы. Узнать можно почти всегда, если в одной сети с устройством и оно не блокирует трафик. nmap или другие сканеры портов
- Идентификацию устройства. Узнать можно, если на нем подняты сервисы, допускающие ручной ввод команд - ftp, telnet, smtp, imap и пр. При подключении на порт сервиса, демон его обслуживающий, обычно выдает строку индентфикации, часто содержащую инфу о том, что это за устройство
- Количество сетевых интерфейсов и их настройки. Узнать можно почти всегда, если есть админские права или если их нет, но установлен и запущен SNMP с дефолтными настройками.
Ну а дальше начинается чистая эмпирика. Компьютер может иметь десяток сетевух, но не быть роутером, а может иметь две и быть. А еще он может быть хостом, несущим несколько ВМ, которые общаются между собой по внутреннему свитчу - он будет роутером или нет?