encore mieux: version Java Servlet
encore plus rapide (avant, php devait charger toute l'image avant de commencer a l'envoyer, la je copie des flux, c'est plus rapide
)
http://www.galaxoft.org/redir/protocol/server/some/path/file.ext
exemple:
http://www.galaxoft.org/redir/http/www.pornstarlove.com/tgp/merritt_cabal/1/cabal15.jpg
Remerciements
Extented pour m'avoir montré ce que sont les servlets
Apache pour avoir inventé Jakarta-Tomcat
Netbeans pour son super IDE qui gère les servlets+déploiement au top
/*
* redir.java
*
* Created on 30 juin 2005, 10:57 by squalyl^2
* Licence: GPL
*/
import java.io.*;
import java.net.*;
import java.util.regex.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author Administrateur
* @version
*/
public class redir extends HttpServlet {
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uri=request.getRequestURI();
Pattern p=Pattern.compile("\/redir\/([a-zA-Z]*)\/(.*)");
Matcher m=p.matcher(uri);
if(!m.matches()) {
response.setContentType("text/plain");
response.getWriter().printf("URI does not match regex: %s",uri);
return;
}
String redirect=m.group(1)+"://"+m.group(2);
System.out.println(redirect);
URL site=new URL(redirect);
URLConnection u=site.openConnection();
u.setRequestProperty("Referer", "");
u.connect();
InputStream in=site.openStream();
OutputStream out = response.getOutputStream();
String mime=u.getContentType();
response.setContentType(mime);
byte[] bbuffer=new byte[1024];
int rd=0;
while((rd=in.read(bbuffer,0, 1024))>0) {
if(rd>0)out.write(bbuffer, 0, rd);
}
out.close();
in.close();
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
out.printf("POST requests are not handled by this servlet. try GET /redir/http/server.com/some/path/file.ext");
out.close();
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "This servlets redirects URLs and nullify referer.";
}
}