Как отправлять ICMP-пакеты (со связанными значениями TTL) в Java на Android? Можно ли без сторонней библиотеки? Если нет, то что вы используете?

Кажется, это должно быть простое решение, но мне не повезло. Я хочу написать простое приложение для устранения неполадок ping / traceroute / dns, но я просто не нахожу никакой документации или примеров по отправке пакетов ICMP ECHO с установленными TTL и интерпретации их ответов. Я понимаю, что Java любит держать вас подальше от «низкоуровневых» сетей, но ICMP - это базовая, основная часть сетей. Честно говоря, я шокирован очевидной трудностью. Я делаю это более сложным, чем нужно, или просто нет хорошего способа сделать это? Если второе, то каким «плохим» способом вы чаще всего обходите этот недостаток?


person Jacob    schedule 26.09.2010    source источник


Ответы (1)


Я делаю это более сложным, чем нужно, или просто нет хорошего способа сделать это?

Нет способа сделать это на чистом Java. Java никогда не поддерживала ICMP, кроме ограниченного использования в isReachable(), и я даже не могу подтвердить, что такое использование ICMP существует в Android.

Однако вы можете попробовать использовать NDK для компоновки в библиотеке C, которая реализует ICMP.

person CommonsWare    schedule 26.09.2010
comment
, Можно ли использовать Java для отправки пакетов ICMP да или нет - person Samir Mangroliya; 15.03.2012