Atitit.http代理的实现 代码java php c# python
2016-04-21 22:51
881 查看
Atitit.http代理的实现 代码java php c# python
调试器
数据搜集器
木马病毒
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
package aaa0proxy;
import java.io.*;
import java.net.*;
import log.Log;
import com.attilax.exception.ExUtil;
import com.attilax.json.AtiJson;
import com.attilax.net.SocketUtil;
import com.attilax.web.UrlX;
public class MyHttpProxy
extends Thread {
static public int CONNECT_RETRIES =
5; // 尝试与目标主机连接次数
static public int CONNECT_PAUSE =
5; // 每次建立连接的间隔时间
static public int TIMEOUT =
20000; // 每次尝试连接的最大时间
static public boolean logging =
false;
// 是否记录日志
// 与客户端相连的Socket
protected Socket
csocket;
public MyHttpProxy(Socket
cs) {
csocket =
cs;
start();//run ()
}
public void run()
{
String
reqHead_firstLine =
"";
// 读取请求头
String
URL =
"";
// 读取请求URL
String
host =
"";
// 读取目标主机host
int port =
80; // 默认端口80
Socket
ssocket =
null;
SocketUtil
client_SocketUtil=null;
SocketUtil
server_SocketUtil_remote =
null;
Log
logger=new Log();
System.out.println("--log
file:"+logger.LOGFILENAME_C );
try {
client_SocketUtil=new SocketUtil(csocket).setSoTimeout(TIMEOUT).setLogger(logger);
UrlX
urlUtil=new UrlX();
try {
reqHead_firstLine =
client_SocketUtil. readFirstLine().firstLine;
}
catch (Exception
e) {
System.out.println("---read
first line ex,msg:"+e.getMessage());
//、、+ "csocket inso:"+
AtiJson.toJson(csocket) );
ExUtil.throwEx(e);
}
if(reqHead_firstLine.contains(".jpg"))
System.out.println("dbg");
// 抽取URL(<a
href="http://www.baidu.com/">http://www.baidu.com/</a>)
//GET http://s.cimg.163.com/catchpic/E/E0/E007CE953D48E9E1EC2319B343B5940D.jpg.670x270.jpg HTTP/1.1
URL =
urlUtil.getRequestURL(reqHead_firstLine);
System.out.println("--url:"+URL);
if(URL.contains("1366134690"))
System.out.println("dbg");
host =
urlUtil.hostNoport(URL);
port=urlUtil.port(URL);
//s.cimg.163.com
server_SocketUtil_remote=new SocketUtil()
.createConn2remote(host,
port,
CONNECT_RETRIES,
CONNECT_PAUSE).setSoTimeout(TIMEOUT).setLogger(logger)
.write(reqHead_firstLine+"").write(client_SocketUtil.charFirstLineBreak);
server_SocketUtil_remote.pipe(client_SocketUtil.is,
client_SocketUtil.os);
// 建立通信管道;
}
catch (Exception
e) {
e.printStackTrace();
}
finally {
new SocketUtil(
client_SocketUtil).close();
new SocketUtil(
server_SocketUtil_remote) .close();
logger.flush();logger.close();
System.out.println("--thd
finish");
}
}
public static void startProxy(int port,
Class clobj)
{
try {
ServerSocket
ssock =
new ServerSocket(port);
//if port use ,throw
ex
/*
* java.net.BindException: Address already in use: JVM_Bind
* */
System.out.println("---start
ok port:"+port);
while (true)
{
Class[]
sarg =
new Class[1];
Object[]
arg =
new Object[1];
sarg[0] = Socket.class;
try {
java.lang.reflect.Constructor cons =
clobj
.getDeclaredConstructor(sarg);
arg[0] =
ssock.accept();
cons.newInstance(arg);
// 创建HttpProxy或其派生类的实例
}
catch (Exception
e) {
Socket
esock = (Socket)
arg[0];
try {
esock.close();
}
catch (Exception
ec) {
}
}
}
}
catch (IOException
e) {
System.out.println("\nStartProxy
Exception:");
e.printStackTrace();
}
}
// 测试用的简单main方法
static public void main(String
args[])
throws FileNotFoundException {
System.out.println("在端口808启动代理服务器\n");
//MyHttpProxy.log_S = file_S;
//MyHttpProxy.log_C = file_C;
//MyHttpProxy.logging = true;
MyHttpProxy.startProxy(808,
MyHttpProxy.class);
}
}
1. 代理服务器用途
代理服务器看成是一种扩展浏览器功能的途径。例如,在把数据发送给浏览器之前,可以用代理服务器压缩数据调试器
数据搜集器
木马病毒
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
package aaa0proxy;
import java.io.*;
import java.net.*;
import log.Log;
import com.attilax.exception.ExUtil;
import com.attilax.json.AtiJson;
import com.attilax.net.SocketUtil;
import com.attilax.web.UrlX;
public class MyHttpProxy
extends Thread {
static public int CONNECT_RETRIES =
5; // 尝试与目标主机连接次数
static public int CONNECT_PAUSE =
5; // 每次建立连接的间隔时间
static public int TIMEOUT =
20000; // 每次尝试连接的最大时间
static public boolean logging =
false;
// 是否记录日志
// 与客户端相连的Socket
protected Socket
csocket;
public MyHttpProxy(Socket
cs) {
csocket =
cs;
start();//run ()
}
public void run()
{
String
reqHead_firstLine =
"";
// 读取请求头
String
URL =
"";
// 读取请求URL
String
host =
"";
// 读取目标主机host
int port =
80; // 默认端口80
Socket
ssocket =
null;
SocketUtil
client_SocketUtil=null;
SocketUtil
server_SocketUtil_remote =
null;
Log
logger=new Log();
System.out.println("--log
file:"+logger.LOGFILENAME_C );
try {
client_SocketUtil=new SocketUtil(csocket).setSoTimeout(TIMEOUT).setLogger(logger);
UrlX
urlUtil=new UrlX();
try {
reqHead_firstLine =
client_SocketUtil. readFirstLine().firstLine;
}
catch (Exception
e) {
System.out.println("---read
first line ex,msg:"+e.getMessage());
//、、+ "csocket inso:"+
AtiJson.toJson(csocket) );
ExUtil.throwEx(e);
}
if(reqHead_firstLine.contains(".jpg"))
System.out.println("dbg");
// 抽取URL(<a
href="http://www.baidu.com/">http://www.baidu.com/</a>)
//GET http://s.cimg.163.com/catchpic/E/E0/E007CE953D48E9E1EC2319B343B5940D.jpg.670x270.jpg HTTP/1.1
URL =
urlUtil.getRequestURL(reqHead_firstLine);
System.out.println("--url:"+URL);
if(URL.contains("1366134690"))
System.out.println("dbg");
host =
urlUtil.hostNoport(URL);
port=urlUtil.port(URL);
//s.cimg.163.com
server_SocketUtil_remote=new SocketUtil()
.createConn2remote(host,
port,
CONNECT_RETRIES,
CONNECT_PAUSE).setSoTimeout(TIMEOUT).setLogger(logger)
.write(reqHead_firstLine+"").write(client_SocketUtil.charFirstLineBreak);
server_SocketUtil_remote.pipe(client_SocketUtil.is,
client_SocketUtil.os);
// 建立通信管道;
}
catch (Exception
e) {
e.printStackTrace();
}
finally {
new SocketUtil(
client_SocketUtil).close();
new SocketUtil(
server_SocketUtil_remote) .close();
logger.flush();logger.close();
System.out.println("--thd
finish");
}
}
public static void startProxy(int port,
Class clobj)
{
try {
ServerSocket
ssock =
new ServerSocket(port);
//if port use ,throw
ex
/*
* java.net.BindException: Address already in use: JVM_Bind
* */
System.out.println("---start
ok port:"+port);
while (true)
{
Class[]
sarg =
new Class[1];
Object[]
arg =
new Object[1];
sarg[0] = Socket.class;
try {
java.lang.reflect.Constructor cons =
clobj
.getDeclaredConstructor(sarg);
arg[0] =
ssock.accept();
cons.newInstance(arg);
// 创建HttpProxy或其派生类的实例
}
catch (Exception
e) {
Socket
esock = (Socket)
arg[0];
try {
esock.close();
}
catch (Exception
ec) {
}
}
}
}
catch (IOException
e) {
System.out.println("\nStartProxy
Exception:");
e.printStackTrace();
}
}
// 测试用的简单main方法
static public void main(String
args[])
throws FileNotFoundException {
System.out.println("在端口808启动代理服务器\n");
//MyHttpProxy.log_S = file_S;
//MyHttpProxy.log_C = file_C;
//MyHttpProxy.logging = true;
MyHttpProxy.startProxy(808,
MyHttpProxy.class);
}
}
相关文章推荐
- tit.Atitit. http 代理原理 atiHttpProxy 大木马 h
- Atitit. http 代理原理 atiHttpProxy 大木马
- Atitit. http 代理原理 atiHttpProxy 大木马
- 使用第三方框架实现异步的HttpClient
- HTTP请求响应过程以及与HTTPS区别
- Linux网络相关查询脚本
- 网络编程——多线程与异步套接字编程(API) 学习
- Android Mina 与Linux TCP通信-1
- 使用HttpClient实现Post请求和Get请求
- python的requests在网络请求中添加cookies参数
- udp协议案例
- http工作原理小示例
- 网络知识
- http和https的区别
- java IM基础(一):建立tcp连接
- Android学习(35) -- smart-image-view 获取网络图片
- CentOS 6.5使用Corosync + pacemaker实现httpd服务的高可用
- CentOS 6.5使用Corosync + pacemaker实现httpd服务的高可用
- Netty_使用http协议,post&get方式
- 简单介绍基于WEB开发的HTTP协议