Реальный IP, скрытый прокси сервером.
Модератор: Absurd
Это ты к чему?
Вобщем сырцы я ещё не закачал, однако понял - нужные классы приватные и вне пакета их заюзать не получится.
А засада происходит из-за вызова checkConnect. Соответственно все IP посетителя можно увидеть только подписав Апплет.
Вобщем сырцы я ещё не закачал, однако понял - нужные классы приватные и вне пакета их заюзать не получится.
А засада происходит из-за вызова checkConnect. Соответственно все IP посетителя можно увидеть только подписав Апплет.
Даже самый дурацкий замысел можно воплотить мастерски
Т.е. даже в старом JDK можно получить те же IP, но только если security позволяет.
Даже самый дурацкий замысел можно воплотить мастерски
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
это я к тому, что вызов идёт native (разве не это ты имел ввиду под JNI?).
вот я что нашел:
<SCRIPT>
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
document.writeln(ipStr.substring(ipStr.indexOf("/")+1));
</SCRIPT>
Мне этот код на моей машине выдал действительно мой локальный IP адрес.
На удалённом же сервере я получил просто: 127.0.0.1
В InetAddress тоже стоит SecurityCheck и если выбрасывается SecurityException - он подгребает доступный IP, то есть localhost.
Так что ситуация, как мне кажется, довольно таки безнадёжная.
вот я что нашел:
<SCRIPT>
var ip = new java.net.InetAddress.getLocalHost();
var ipStr = new java.lang.String(ip);
document.writeln(ipStr.substring(ipStr.indexOf("/")+1));
</SCRIPT>
Мне этот код на моей машине выдал действительно мой локальный IP адрес.
На удалённом же сервере я получил просто: 127.0.0.1
В InetAddress тоже стоит SecurityCheck и если выбрасывается SecurityException - он подгребает доступный IP, то есть localhost.
Так что ситуация, как мне кажется, довольно таки безнадёжная.
Есс-но выдаёт только 127.0.0.1. И в IE не работает.
Даже самый дурацкий замысел можно воплотить мастерски
Гы. Всё оказалось до смешного просто. Смотри: ты можешь создать сокет для сервера, с которого закачан апплет.
У него берёшь локальный адрес getLocalAddress() и его преобразуешь в строку getHostAddress()
Результаты можно посмотреть тут: tmp/ipapplet.html
Только я апплет свинговый сделал, так что JRE с java-pligin закачать надо.
В двух словах: ты делаешь апплет, приобретаешь сертификат, который привязан к тебе, и генеришь два ключа - приватный и публичный. Приватным ключём jar c манифестом и апплетом подписывается, а публичным подпись проверяется. Если произойдёт что-то нехорошее, то всегда понятно кому по голове стучать 
Подробнее читать тут: http://java.sun.com/developer/technical ... ty/Signed/
Правда права раздавать каждый пользователь ручками будет. В этом не уверен, но это похоже на правду.
У него берёшь локальный адрес getLocalAddress() и его преобразуешь в строку getHostAddress()
Результаты можно посмотреть тут: tmp/ipapplet.html
Только я апплет свинговый сделал, так что JRE с java-pligin закачать надо.
Ну это объяснять долгоAiK, а что такое "подписанный Аплет" ?


Подробнее читать тут: http://java.sun.com/developer/technical ... ty/Signed/
Правда права раздавать каждый пользователь ручками будет. В этом не уверен, но это похоже на правду.
Даже самый дурацкий замысел можно воплотить мастерски
Oscar, у меня сейчас нет времени вспоминать, как грамотно создавать сокеты на Java. Более того, я ситуацию твою повторить не могу. Создай сокет сам и посмотри, что за ошибки возникают. У меня сейчас на все ошибки FORBIDDEN выдаётся.
Возможно, нужно явно в настройках JRE указать твой прокси.
Возможно, нужно явно в настройках JRE указать твой прокси.
Даже самый дурацкий замысел можно воплотить мастерски
А браузером как ты в интернет выходишь? Ему тоже сокет создать нужно, чтобы к сайту законнектится...у меня сокеты закрыты (запрещено ими пользоваться).
Даже самый дурацкий замысел можно воплотить мастерски