Форум — Development Либу traceroute/ping на C/C++ c++, ping, traceroute 0 1 Засоветуйте? ) тот что православный из убунты/дебиана этот не предлагать ) https://habr.com/ru/articles/726714/ Ответить на это сообщение Ссылка
По ссылке как раз что-то вменяемое кажется. Хотя я не особо всматривался.Зачем тебе либа, если там кода на 1 страницу (для пинга) или на максимум несколько (для tracceroute)? firkax ★★★★★ (06.07.23 14:30:15 MSK) Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от firkax 06.07.23 14:30:15 MSK Чтоб даже страницу не писать, как то fdisk удачно затащил к себе в проект, что бы готовым то не воспользоваться wolverin ★★★ (06.07.23 16:22:24 MSK) автор топика Ответить на это сообщение Ссылка
Ответ на: комментарий от sigurd 06.07.23 14:42:44 MSK Спасибо, но там трассировки нет… wolverin ★★★ (06.07.23 16:25:12 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от wolverin 06.07.23 16:25:12 MSK там есть ping_setopt PING_OPT_TTL https://noping.cc/documentation/ping_setopt/ zudwa ★ (06.07.23 17:19:49 MSK) Ответить на это сообщение Показать ответы Ссылка
https://libtins.github.io/examples/traceroute/ snizovtsev ★★★★★ (06.07.23 17:28:34 MSK) Ответить на это сообщение Ссылка
Ответ на: комментарий от zudwa 06.07.23 17:19:49 MSK Он хочет чтобы была функция int traceroute(char const *target_host); firkax ★★★★★ (06.07.23 17:37:08 MSK) Ответить на это сообщение Ссылка
Ответ на: комментарий от zudwa 06.07.23 17:19:49 MSK О спасибо, значит либа популярная, надо брать ) wolverin ★★★ (06.07.23 18:01:40 MSK) автор топика Ответить на это сообщение Ссылка
Ответ на: комментарий от zudwa 06.07.23 17:19:49 MSK подключил я либу эту, пинг освоил, начал эксперименты с PING_OPT_TTL увеличивая его с шагом, а как получить теперь откуда вернулся ответ??? Из документация что можно вернуть это https://noping.cc/documentation/ping_iterator_get_info/ PING_INFO_RECV_TTL PING_INFO_RECV_QOS wolverin ★★★ (09.07.23 05:12:21 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от zudwa 06.07.23 17:19:49 MSK )) епта, там даже чтение recv из сокета после sendto НЕТ!!! допилить што ли либу эту… wolverin ★★★ (09.07.23 09:08:56 MSK) автор топика Ответить на это сообщение Показать ответы Ссылка
Ответ на: комментарий от wolverin 09.07.23 09:08:56 MSK виноват, наврал, используется recvmsg но как получить адрес ответившего все равно вопрос. wolverin ★★★ (09.07.23 09:36:20 MSK) автор топика Ответить на это сообщение Ссылка
Ответ на: комментарий от wolverin 09.07.23 09:08:56 MSK а штобы это сделать, нужно понять какой тип struct cmsghdr *cmsg->cmsg_level содержит ip адрес я так понимаю в этом месте файла liboping.c payload_buffer_len = recvmsg (fd, &msghdr, /* flags = */ 0); if (payload_buffer_len < 0) { #if WITH_DEBUG char errbuf[PING_ERRMSG_LEN]; dprintf ("recvfrom: %s\n", sstrerror (errno, errbuf, sizeof (errbuf))); #endif return (-1); } dprintf ("Read %zi bytes from fd = %i\n", payload_buffer_len, fd); /* Iterate over all auxiliary data in msghdr */ recv_ttl = -1; recv_qos = 0; for (cmsg = CMSG_FIRSTHDR (&msghdr); /* {{{ */ cmsg != NULL; cmsg = CMSG_NXTHDR (&msghdr, cmsg)) { if (cmsg->cmsg_level == SOL_SOCKET) { #ifdef SO_TIMESTAMP if (cmsg->cmsg_type == SO_TIMESTAMP) memcpy (&pkt_now, CMSG_DATA (cmsg), sizeof (pkt_now)); #endif /* SO_TIMESTAMP */ } else if (addrfam == AF_INET) /* {{{ */ { if (cmsg->cmsg_level != IPPROTO_IP) continue; if (cmsg->cmsg_type == IP_TOS) { memcpy (&recv_qos, CMSG_DATA (cmsg), sizeof (recv_qos)); dprintf ("TOSv4 = 0x%02"PRIx8";\n", recv_qos); } else if (cmsg->cmsg_type == IP_TTL) { memcpy (&recv_ttl, CMSG_DATA (cmsg), sizeof (recv_ttl)); dprintf ("TTLv4 = %i;\n", recv_ttl); } else { dprintf ("Not handling option %i.\n", cmsg->cmsg_type); } } /* }}} */ wolverin ★★★ (09.07.23 10:26:23 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от wolverin 09.07.23 10:26:23 MSK если там вообще есть какой то struct in_addr / struct sockaddr_in… wolverin ★★★ (09.07.23 10:35:44 MSK) автор топика Последнее исправление: wolverin 09.07.23 10:36:14 MSK (всего исправлений: 2) Ответить на это сообщение Ссылка
Ответ на: комментарий от wolverin 09.07.23 05:12:21 MSK вопщим как то так подкрутить эту либу получилось, как то работает ) https://github.com/octo/liboping/issues/73 wolverin ★★★ (10.07.23 06:44:09 MSK) автор топика Ответить на это сообщение Ссылка