Как создать сокет который бы читал данные с определенного порта, но не только TCP/UDP layer а еще и IP layer. По моему подходит только RAW сокет, с последущим отсечением Мак уровня? Или я не прав?
>Как создать сокет который бы читал данные с определенного порта, но не
>только TCP/UDP layer а еще и IP layer. По моему подходит
>только RAW сокет, с последущим отсечением Мак уровня? Или я не
>прав?не прав.
заголовки канального уровня будут только при использовании
sock_packet (пакетного сокета)
в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr include. а по порту прийдётся фильтровать самому.
>заголовки канального уровня будут только при использовании
>sock_packet (пакетного сокета)
>в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr
>include. а по порту прийдётся фильтровать самому.Простите, не понял. С tcp/udp сокетом понятное дело никакого сетевого уровня в заголовках пакета я не увижу. А вот если буду использовать RAW с setsocopt(blahblah, IP_HDRINC), то получу только данные + IP headers или же там мак тоже маячить будет? Мне же нужнен пакет только с IP уровнем. Сорри если туманно выражаюсь.
>>заголовки канального уровня будут только при использовании
>>sock_packet (пакетного сокета)
>>в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr
>>include. а по порту прийдётся фильтровать самому.
>
>Простите, не понял. С tcp/udp сокетом понятное дело никакого сетевого уровня в
>заголовках пакета я не увижу. А вот если буду использовать RAW
>с setsocopt(blahblah, IP_HDRINC), то получу только данные + IP headers или
>же там мак тоже маячить будет? Мне же нужнен пакет только
>с IP уровнем. Сорри если туманно выражаюсь.с tcp/udp сокетом вы не увидите tcp/udp заголовка.
с raw сокетом без setsockopt/IP_HDRINCLUDE вы увидите tcp/udp заголовок.
с raw сокетом с setsockopt/IP_HDRINCLUDE вы увидите tcp/udp+ip заголовок.
(http://www.opennet.me/base/dev/allpacke.txt.html например)
с пакетным сокетом вы увидите ethernet заголовок + tcp/udp/ip заголовоки.
(http://www.senie.com/dan/technology/sock_packet.html вкратце)
>с tcp/udp сокетом вы не увидите tcp/udp заголовка.
>с raw сокетом без setsockopt/IP_HDRINCLUDE вы увидите tcp/udp заголовок.
>с raw сокетом с setsockopt/IP_HDRINCLUDE вы увидите tcp/udp+ip заголовок.
>(http://www.opennet.me/base/dev/allpacke.txt.html например)
>с пакетным сокетом вы увидите ethernet заголовок + tcp/udp/ip заголовоки.
>(http://www.senie.com/dan/technology/sock_packet.html вкратце)Ok, большое спасибо, это я как раз и хотел узнать.