Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Определяем реальный IP


Автор: Azbuka 12.6.2007, 11:30
Сегодня мы будем учиться узнавать реальный IP человека за SOCKS/анонимной HTTP/любой другой проксях. Работает это если у него в браузере включена поддержка Java-апплетов (по дефолту в огнелисе и в опере включены !). Апплет будет создавать подключение к специальному скрипту-снифферу через свой сокет, а скрипт на PHP будет логировать его IP. Вот и все пояснения, исходники тут: Апплет IPLog.java (на сервер надо выкладывать скомпиленный байт-код IPLog.class C:>javac IPlog.java - чтобы скомпилить, надо Java SDK или Eclipse Studio)

Код

/**
* IPLog.java
* @author WindEX
*/

import java.applet.*;
import java.io.*;
import java.net.*;

public class IPLog extends Applet {
public void init() {
 setLayout(null);
 String params = "?sess="+getParameter("sess");
 String buff = "";
 int c;
 URL hp;
 try {
  hp = new URL("http", getParameter("host"), 80, getParameter("sniffpath")+params);
  InputStream input = hp.openStream();
  while ((c = input. read()) != -1) {
   buff = buff + (char) c;
  }
  input.close();
 } catch (Exception e1) { buff = "An error occured"; }
 
}
}


ПХП-логгер:
Код


<?php 
$f=Fopen("./result.log","a") or die("ale!!!!!!!!!");
fputs($f,$REMOTE_ADDR."\n");
fputs($f,$QUERY_STRING."\n---------------------\n");
fclose($f);
echo("Your IP logged");
?>


Дальше во все файлы, обращение к которым надо логировать, вставляем (параметр sess - какое-нибудь уникальное значение, необходим для связывания запроса через прокси и реального IP)

Код

&lthtml>
&ltapplet code=IPLog width=0 height=0>
&ltparam name=sess value=(какое-нибудь уникальное значение)>
&ltparam name=host value='yoursite.ru'>
&ltparam name=sniffpath value='/logging/sniff.php'>
</applet>
</html>


И не забудь создать файл result.log и поставить на него необходимые права

Код

$touch result.log;chmod 777 result.log


Автор: WindEX,
Май 2006 г.
http://www.javaportal.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)