Чтение заголовков IP-уровня с использованием сокетов Java

Есть ли способ (в Java) читать заголовки IP-уровня (меня интересуют IP-адреса src и dst), используя сокет TCP или UDP?

Я знаю, что это возможно с помощью pcap (захвата пакетов), но я не нашел способа сделать это с помощью сокетов. В чем причина этого?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
117
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете просто открыть /dev/socket как InputStream и прочитать данные, поступающие в сокет.

Ответ принят как подходящий

На уровне операционной системы вам потребуется необработанные сокеты для доступа к заголовкам IP-уровня. Но, к счастью, в чистой Java нет необработанных сокетов, поэтому вам нужен собственный код для выполнения соответствующих системных вызовов.

Существуют библиотеки Java, которые используют компонент JNI для собственных вызовов. Один пример (который я успешно использовал в прошлом) — каменная пила.

Другие вопросы по теме