Re: [Network] Простой ICMP запрос

Alex Naumov alexander_naumov at opensuse.org
Fri Nov 21 08:45:42 EST 2014


На всякий случай отстальная часть кода
(к логике работы самого icmp не относится).

#include <error.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/utsname.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <resolv.h>
#include <netinet/ip_icmp.h>

#define PACKETSIZE  64

void usage()
{
    printf("USAGE:\t  prog_name <IP_address>\n");
    exit(1);
}


int main(int argc, char *argv[])
{
    if(argv[1] == NULL)
        usage();

    if (ping(argv[1]) > 0)
        printf("PING\t\tOK\n");
    else
        printf("PING\t\tNO_ANSWER\n");

    return 0;
}



2014-11-21 14:15 GMT+01:00 Alex Naumov <alexander_naumov at opensuse.org>:

> Всем привет.
>
> Начнем потихоньку? Вот [1] пример функции, которая отправляет 4 ICMP
> запроса (raw-сокет).
> В качестве аргумента передаем ей строку с IP адресом.
> Если получено больше одного ответа, то функция возвращает положительный
> ответ.
> Предпологается, что функция используется по аналогии с ping(8).
>
> Кто что думает об этом коде? Что можно улучшить?
>
> Мне вот интересно, сколько по-вашему стоит получить ответов, чтобы быть
> уверенным, что
> сеть работет без проблем и задержка с ответами не слишком большая?
>
> Кто-нибудь может ясно объяснить, почему для корректной работы он требует
> права root?
>
> Alex
>
>
> [1] http://goo.gl/2eAH4C
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernel-russian/attachments/20141121/2863b410/attachment.html 


More information about the Kernel-russian mailing list