Как я могу вызвать getsockopt в Java, чтобы получить SO_ORIGINAL_DST - PullRequest
1 голос
/ 08 марта 2012

Кто-нибудь знает, существует ли существующая библиотека, которая позволила бы мне позвонить getsockopt, чтобы получить IP-адрес назначения для сокета, который iptables перенаправил через мое приложение Java?

Вот аналогичный вопрос в списке рассылки Netty, который остался без ответа.

Вызов в c будет выглядеть примерно так:

getsockopt(ctx->client.fd, SOL_IP, 
    SO_ORIGINAL_DST, &SANY_ADDR(addr), &SANY_LEN(addr))

Пример того, как это сделать с JNI, также приветствуется.

1 Ответ

0 голосов
/ 09 марта 2012

Вы не можете сделать это на Java. Вы можете сделать это в JNI точно так же, как вы написали, если вы можете получить сокет FD, который находится в SocketImpl из Socket.

...