java 模拟多ip访问
Posted eian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 模拟多ip访问相关的知识,希望对你有一定的参考价值。
java模拟多ip请求
package url_demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.Random;
public class HttpUtilTest
private int index = 0;
public String sendPost(String url, String param)
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
// 随机生成ip
String ip = randIP();
conn.setRequestProperty("X-Forwarded-For", ip);
conn.setRequestProperty("HTTP_X_FORWARDED_FOR", ip);
conn.setRequestProperty("HTTP_CLIENT_IP", ip);
conn.setRequestProperty("REMOTE_ADDR", ip);
conn.setRequestProperty("Host", "");
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestProperty("Content-Length", "17");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Origin", "ORIGIN");
conn.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Referer", "REFERER");
conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6,ja;q=0.4,pt;q=0.2");
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
result += line;
synchronized (this)
DemoUtl.index = DemoUtl.index + 1;
System.out.println("第" + DemoUtl.index + "次访问; --> || 当前线程:" + param + " || 请求成功! || 模拟ip: " + ip
+ " || 返回结果: " + result.toString().hashCode());
catch (Exception e)
// System.out.println("发送 POST 请求出现异常!" + e);
// e.printStackTrace();
finally
try
if (out != null)
out.close();
if (in != null)
in.close();
catch (IOException ex)
ex.printStackTrace();
return result;
public static String randIP()
Random random = new Random(System.currentTimeMillis());
return (random.nextInt(255) + 1) + "." + (random.nextInt(255) + 1) + "." + (random.nextInt(255) + 1) + "."
+ (random.nextInt(255) + 1);
package url_demo;
import java.util.Random;
public class DemoUtl
public static int index = 0;
public static void main(String[] args) throws InterruptedException
try
for (int i = 0; i < 100000; i++)
Thread.sleep((new Random()).nextInt(200) + 100);
new Thread(new Runnable()
@Override
public void run()
for (int j = 0; j < 100000; j++)
try
Thread.sleep((new Random()).nextInt(3200) + 1500);
HttpUtilTest tt = new HttpUtilTest();
tt.sendPost(
"https://www.baidu.com",
Thread.currentThread().getName());
catch (InterruptedException e)
e.printStackTrace();
).start();
catch (Exception e)
e.printStackTrace();
以上是关于java 模拟多ip访问的主要内容,如果未能解决你的问题,请参考以下文章