Чтение онлайн

на главную

Жанры

UNIX: разработка сетевых приложений
Шрифт:

68 }

69 alarm(0); /* отключаем таймер */

70 Gettimeofday(tv, NULL); /* get time of packet arrival */

71 return(ret);

72 #endif

73 }

Листинг 28.19. Возвращение строки, соответствующей коду недоступности ICMPv6

//traceroute/icmpcode_v6.c

1 #include "trace.h"

2 const char *

3 icmpcode_v6(int code)

4 {

5 #ifdef IPV6

6 static char errbuf[100];

7 switch (code) {

8 case ICMP6_DST_UNREACH_NOROUTE:

9 return("no route to host");

10 case ICMP6_DST_UNREACH_ADMIN:

11 return("administratively prohibited");

12 case ICMP6_DST_UNREACH_NOTNEIGHBOR:

13 return("not a neighbor");

14 case ICMP6_DST_UNREACH_ADDR:

15 return("address unreachable");

15 case ICMP6_DST_UNREACH_NOPORT:

16 return("port unreachable");

17 default:

18 sprintf(errbuf, "[unknown code %d]",. code);

19 return errbuf;

20 }

21 #endif

22 }

Пример

Сначала

приведем пример с Ipv4:

freebsd % traceroute www.unpbook.com

traceroute to www.unpbook.com (206.168.112.219): 30 hops max. 24 data bytes

1 12.106.32.1 (12.106.32.1) 0.799 ms 0.719 ms 0.540 ms

2 12.124.47.113 (12.124.47.113) 1.758 ms 1.760 ms 1.839 ms

3 gbr2-p27.sffca.ip.att.net (12.123.195.38) 2.744 ms 2.575 ms 2.648 ms

4 tbr2-p012701.sffca.ip.att.net (12.122.11.85) 3.770 ms 3.689 ms 3.848 ms

5 gbr3-p50.dvmco.ip.att.net (12.122.2.66) 26.202 ms 26.242 ms 26.102 ms

6 gbr2-p20.dvmco.ip.att.net (12.122.5.26) 26 255 ms 26.194 ms 26.470 ms

7 gar2-p370.dvmco.ip.att.net (12.123.36.141) 26.443 ms 26.310 ms 26.427 ms

8 att-46.den.internap.ip.att.net (12.124.158.58) 26.962 ms 27.130 ms 27.279 ms

9 border10 ge3-0-bbnet2.den.pnap.net (216.52.40.79) 27.285 ms 27 293 ms 26.860 ms

10 coop-2.border10.den.pnap.net (216 52.42.118) 28.721 ms 28.991 ms 30.077 ms

11 199.45.130.33 (199.45.130.33) 29.095 ms 29.055 ms 29 378 ms

12 border-to-141-netrack.boulder.со.coop.net (207.174.144.178) 30.875 ms 29.747 ms 30.142 ms

13 linux.unpbook.com (206.168.112.219) 31.713 ms 31.573 ms 33.952 ms

Ниже приведен пример с IPv6. Для лучшей читаемости длинные строки разбиты.

freebsd % traceroute www.kame.net

traceroute to orange.kame.net (2001:200:0:4819:203:47ff:fea5:3085): 30 hops max, 24 data bytes

1 3ffe:b80:3:9ad1::1 (3ffe:b80:3:9ad1::1) 107.437 ms 99.341 ms 103.477 ms

2 Viagenie-gw.int.ipv6.ascc.net (2001:288:3b0::55)

105.129 ms 89.418 ms 90.016 ms

3 gw-Viagenie.int.ipv6.ascc.net (2001:288:3b0::54)

302.300 ms 291.580 ms 289.839 ms

4 c7513-gw.int.ipv6.ascc.net (2001:288:3b0::c)

296.088 ms 298.600 ms 292.196 ms

5 m160-c7513.int.ipv6.ascc.net (2001:288:3b0::1e)

296.266 ms 314.878 ms 302.429 ms

6 m20jp-ml60tw.int.ipv6.ascc.net (2001:288:3b0::1b)

327.637 ms 326.897 ms 347.062 ms

7 hitachi1.otemachi.wide.ad.jp (2001:200:0:1800::9c4:2)

420.140 ms 426.592 ms 422.756 ms

8 pc3.yagami.wide.ad.jp (2001:200:0:1c04::1000:2000)

415.471 ms 418.308 ms 461.654 ms

9 gr2000.k2c.wide.ad.jp (2001:200:0:8002::2000:1)

416.581 ms 422.430 ms 427.692 ms

10 2001:200:0:4819:203:47ff:fea5:3085 (2001:200:0:4819:203:47ff:fea5:3085)

417.169 ms 434.674 ms 424.037 ms

28.7. Демон сообщений ICMP

Получение асинхронных ошибок ICMP на сокет UDP всегда было и продолжает оставаться проблемой. Ядро получает сообщения об ошибках ICMP, но они редко доставляются приложениям, которым необходимо о них знать. Мы видели, что для получения этих ошибок в API сокетов требуется присоединение сокета UDP к одному IP-адресу (см. раздел 8.11). Причина такого ограничения заключается в том, что единственная ошибка, возвращаемая функцией

recvfrom
, является целочисленным кодом
errno
, а если приложение посылает дейтаграммы по нескольким адресам, а затем вызывает
recvfrom
, то данная функция не может сообщить приложению, какая из дейтаграмм вызвала ошибку.

Поделиться:
Популярные книги

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6

Изменить нельзя простить

Томченко Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Изменить нельзя простить

Колючка для высшего эльфа или сиротка в академии

Жарова Анита
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Колючка для высшего эльфа или сиротка в академии

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Газлайтер. Том 9

Володин Григорий
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 9

Возвращение

Жгулёв Пётр Николаевич
5. Real-Rpg
Фантастика:
боевая фантастика
рпг
альтернативная история
6.80
рейтинг книги
Возвращение

"Фантастика 2023-123". Компиляция. Книги 1-25

Харников Александр Петрович
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Фантастика 2023-123. Компиляция. Книги 1-25

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Стеллар. Заклинатель

Прокофьев Роман Юрьевич
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Стеллар. Заклинатель

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке