Как проверить, доступен ли данный IP-адрес в C-программе? - PullRequest
1 голос
/ 04 октября 2011

Мне нужна программа на C, которая проверит, доступен ли IP-адрес пользователя (ipv4 и ipv6) или нет. Я не знаю, порт нет. Поэтому я не могу подключиться и проверить. Функциональность более или менее похожа на пинг. За исключением того, что я не хочу использовать ping из-за накладных расходов.

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Доступность хоста не означает, что вы сможете получать от него услуги.Лучше всего попытаться подключиться к правильному номеру порта.Чего именно вы пытаетесь достичь?

Кроме того, хотя ICMP является разумным способом сделать это, он может не работать, если на хосте установлен межсетевой экран, отключающий ICMP.В этом случае вы не получите никакого ответа.

1 голос
/ 04 октября 2011

Вам необходимо создать необработанный сокет, затем создать и отправить пакет ICMP к месту назначения.

http://courses.cs.vt.edu/~cs4254/fall04/slides/raw_6.pdf

...