icmp thru raw sockets
- From
- Gennady Porev (2:5020/69.36)
- To
- All ()
- Date
- 2001-12-16T18:31Z
- Area
- SU.WINDOWS.NT.PROG
Hi, All!
DELPHI5/win2kpro:
Сделал я приём и отправку ICMP пакетов через raw sockets. А именно: сокет создаётся с (af_inet,sock_raw,ipproto_icmp). После чего можно принимать _IP_пакеты_ с сообщениями ICMP или отправлять _ICMP_сообщения_. Логика чисто мелкософтовская, ну да ладно... Беда в том, что не все типы ICMP приходят на такой сокет! А именно - приходят такие типы: 0, 1, 2, 6, 7, 9, 10, 14, 15, 16, 18 и далее все подряд. "Того самого", родного, 8-го типа, который ping и traceroute, WinSock подло фильтрует и отправляет echoreply самостоятельно, гад.
Ergo, вопросы:
1. Как сделать, что бы сокет (sock_raw,ipproto_icmp или другой) принимал ВСЕ типы ICMP-сообщений?
2. Как ПРАВИЛЬНО сделать так, что бы можно было самому отправлять IP пакеты? Я делал так - сокет (af_inet,sock_raw,ipproto_raw или ipproto_ip), потом setsockopt с ipproto_ip и ip_hdrincl в true. Всё как в линуксе. После чего сокет не желает bind'иться и читать\писать данные куда бы то ни было.
Если у кого есть ещё какие-либо идеи относительно того, как ловить и отправлять ICMP сообщения типов 0 и 8 с заданным содержанием, необязательно через WinSock, очень прошу намылить - в долгу не останусь.
* Разослано также в RU.DELPHI
* Разослано также в SU.WIN32.PROG
* Разослано также в SU.WINDOWS.PROG
Relax, Gennady. [MCP #2124946]
ICQ UIN: 13031700
--- GoldED/W32 3.0.1
* Origin: EXPAN headquarter (2:5020/69.36)