Читать перенаправляющие сокеты в Java?
Вопрос
Если бы я должен был создать правило переадресации ipfw для пересылки всего FTP-трафика на определенный сокет, возможно ли использовать Java для подключения к socekt и считывания информации о пакете?Если да, то как бы я приступил к чтению / записи в scoket?
Решение
не совсем понимаю, что вы имеете в виду.Если вы используете правило перенаправления, то все, что вам нужно сделать, это прослушать эту комбинацию ip: port в вашем java-приложении, и все готово.Если вы хотите прочитать фактическую информацию о конечной точке назначения, вам нужно будет использовать JNI для этого.
Другие советы
Да, это как обычный сокет, вы можете читать / записывать из / в него, но в Mac OS X, если вы хотите изменить пакет и вставить его обратно, вам нужно сначала пересчитать контрольную сумму tcp.
http://blog .loudhush.ro/2006/08/using-divert-sockets-on-mac-os-x.html
Это хороший пост, в котором рассказывается об основном использовании сокета divert в Mac OS X.На самом деле вы можете создать правило в своем C-коде.
В вашем случае просто просканируйте пакет на наличие заголовка TCP или IP и проанализируйте все, что вам нужно