当前位置: 首页 > news >正文

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();// 随机生成ipString 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() {@Overridepublic 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发送post请求
要使用 Java 模拟多 IP 发送 POST 请求,可以使用代理 IP 来实现。以下是一个示例代码,演示了如何设置代理 IP 发送 HTTP POST 请求:
首先,确保你已经导入了相关的网络请求库,如java.net.HttpURLConnection或其他 HTTP 客户端库(如 Apache HttpComponents 等)。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;public class ProxyPostRequestExample {public static void main(String[] args) {String targetUrl = "http://example.com/api"; // 替换为实际的目标 URLString proxyHost = "proxy-host"; // 替换为代理服务器的主机或 IP 地址int proxyPort = 8080; // 替换为代理服务器的端口for (int i = 0; i < 5; i++) { // 模拟发送 5 次请求sendPostRequestWithProxy(targetUrl, proxyHost, proxyPort);}}public static void sendPostRequestWithProxy(String targetUrl, String proxyHost, int proxyPort) {try {URL url = new URL(targetUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection(new java.net.Proxy(java.net.Proxy.Type.HTTP, new java.net.InetSocketAddress(proxyHost, proxyPort)));connection.setRequestMethod("POST");connection.setDoOutput(true);String postData = "param1=value1&param2=value2"; // 替换为实际的 POST 数据OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());writer.write(postData);writer.flush();int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;StringBuilder response = new StringBuilder();while ((line = reader.readLine())!= null) {response.append(line);}reader.close();System.out.println("Response: " + response.toString());} else {System.out.println("Request failed with response code: " + responseCode);}} catch (IOException e) {e.printStackTrace();}}
}

在上述示例中,定义了一个sendPostRequestWithProxy方法,它接受目标 URL、代理服务器的主机和端口作为参数。
在方法内部,通过创建java.net.Proxy对象并设置到URLConnection中,来指定使用的代理服务器。然后设置请求方法为POST,并设置doOutput为true以发送 POST 数据。
接下来,构造要发送的 POST 数据,并使用OutputStreamWriter将数据写入连接的输出流中。
最后,获取服务器的响应码,并根据响应码读取响应内容或输出错误信息。
请注意,上述代码中的代理服务器的主机(proxyHost)和端口(proxyPort)需要替换为实际可用的代理服务器信息。此外,还需要根据实际情况设置请求头、处理请求参数等。
另外,使用代理 IP 时需要注意以下几点:
确保你有合法使用代理服务器的权限。
代理服务器的稳定性和性能可能会影响请求的结果。
一些网站可能会检测和限制使用代理的访问,或者对来自特定 IP 范围的请求有特定的规则和限制。
如果需要更复杂的请求设置或处理,可能需要使用更强大的 HTTP 客户端库,如 Apache HttpComponents 或其他类似的库,它们提供了更丰富的功能和更灵活的配置选项来满足各种需求。
同时,随机生成大量不同的 IP 地址来模拟请求可能违反网站的使用条款和服务协议,并且在某些情况下可能被视为不合法或不道德的行为。请确保你的使用方式是合规和道德的,并尊重目标网站的规定和限制。此外,某些网站可能会采取措施来检测和防范此类行为,例如限制频繁的请求或使用 IP 封锁等技术。在进行任何网络请求活动时,建议遵循良好的网络行为准则,并根据实际需求和合法目的进行操作。如果你的目的是合法的测试或数据收集,最好与目标网站的所有者或管理员进行沟通,以确保你的行为得到适当的授权和认可。

要在 Java 中模拟多 IP 发送 POST 请求并添加请求头,可以使用HttpURLConnection类来实现。以下是一个示例代码,演示了如何设置请求头并发送 POST 请求:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class MultiIPPostRequestWithHeaders {public static void main(String[] args) throws IOException {String url = "http://example.com/api"; // 替换为实际的目标 URL// 模拟多个 IP(这里仅设置了一个示例 IP)String[] ips = {"192.168.0.100"}; for (String ip : ips) {sendPostRequestWithHeaders(url, ip);}}public static void sendPostRequestWithHeaders(String url, String ip) throws IOException {URL obj = new URL(url);HttpURLConnection connection = (HttpURLConnection) obj.openConnection();// 设置请求方法为 POSTconnection.setRequestMethod("POST");// 设置请求头connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Authorization", "Bearer yourAccessToken"); // 添加其他需要的请求头// 设置特定的 IP(仅为示例,实际中可能需要更复杂的方式来设置多个 IP)connection.setRequestProperty("X-Forwarded-For", ip); // 设置允许输出connection.setDoOutput(true);String requestBody = "{\"key1\":\"value1\",\"key2\":\"value2\"}"; // 替换为实际的请求体 JSON 数据try (OutputStream outputStream = connection.getOutputStream()) {outputStream.write(requestBody.getBytes());outputStream.flush();}int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;StringBuilder response = new StringBuilder();while ((inputLine = in.readLine())!= null) {response.append(inputLine);}in.close();System.out.println("Response from " + ip + ": " + response.toString());} else {System.out.println("POST request to " + url + " failed with response code: " + responseCode);}}
}

在上述示例中,首先设置了要请求的目标 URL。然后,在sendPostRequestWithHeaders方法中进行了以下操作:
创建HttpURLConnection对象并设置请求方法为POST。
设置了常见的请求头,如Content-Type和Authorization,你可以根据实际需求添加其他请求头。
通过setRequestProperty(“X-Forwarded-For”, ip)设置了X-Forwarded-For请求头来模拟不同的 IP 地址。请注意,这只是一种简单的模拟方式,实际中设置多个 IP 可能需要更复杂的网络配置或使用代理等方式。
设置允许输出,并将请求体数据写入输出流。
获取响应码并根据响应码读取响应内容或输出错误信息。
请将"http://example.com/api"替换为你实际要发送 POST 请求的目标网址,并根据需要修改请求头和请求体的数据。
另外,模拟多个 IP 发送请求的具体实现方式可能会受到网络环境和应用场景的限制。在某些情况下,可能需要使用代理服务器或者特定的网络设置来实现更真实的多 IP 请求。同时,还需注意遵守相关的法律规定和网站的使用条款,确保你的请求行为是合法和合规的。

相关文章:

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…...

微软史诗级的蓝屏

本周经历了微软的蓝屏&#xff0c;一直到周末还在加班处理公司的问题。 个人终端受到的影响较大&#xff0c;服务器上也受到了影响。因为蓝屏的事情导致不少麻烦&#xff0c;据同事说因为蓝屏的问题&#xff0c;MGH 的手术安排也受到了影响。 目前我们也在着手处理有部署 Wind…...

HALCON数据结构

一、HALCON数据结构简介 1、HALCON中有两类参数&#xff1a;图形参数和控制参数。 2、HALCON算子参数中&#xff0c;图形输入参数、图形输出参数、控制输入参数和控制输出参数。 3、图形参数有&#xff1a;图像(image)、区域(region)和轮廓(XLD) 4、控制参数有&#xff1a;…...

数据库系统概论:事务与并发一致性问题

随着网络应用的普及&#xff0c;数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面&#xff0c;旨在提高系统的吞吐量和响应时间&#xff0c;以满足多用户同时访问数据库的需求。然而&#xff0c;这…...

Python编程基础:元组类型、字典类型、集合类型

目录 元组类型创建/删除元组访问/操作元组元组生成式字典类型创建/删除字典访问/操作字典字典相关函数集合类型创建/删除集合集合相关操作符访问/操作集合元组类型 元组是Python中内置的不可变序列,这是它跟列表的不同之处,它没有一系列增删改等操作,只可以使用索引和for循环…...

day2 单机并发缓存

文章目录 1 sync.Mutex2 支持并发读写3 主体结构 Group3.1 回调 Getter3.2 Group 的定义3.3 Group 的 Get 方法 4 测试 本文代码地址&#xff1a; https://gitee.com/lymgoforIT/gee-cache/tree/master/day2-single-node 本文是7天用Go从零实现分布式缓存GeeCache的第二篇。 …...

ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点

大规模集群&#xff0c;大语言模型(LLM)训练流量特点&#xff0c;ECMP&#xff08;Equal-Cost Multi-Path Routing&#xff09;流量极化拥塞原因。 视频分享在这&#xff1a; 2.1 ECMP等价多路由&#xff0c;大模型训练流量特点&#xff0c;拥塞冲突极化产生原因_哔哩哔哩_bi…...

Linux 注意事项

Linux 与 Windows 是两个相互独立的操作系统&#xff0c;两者有较大差距&#xff1a; 1.1 Linux 严格区分大小写&#xff08;Windows不严格区分大小写&#xff09;&#xff1b; 1.2 Linux 中所有内容&#xff0c;硬件设备都以文件形式保存在 /dev 目录下&#xff08;万物皆文件…...

力扣SQL50 指定日期的产品价格 双重子查询 coalesce

Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 &#x1f468;‍&#x1f3eb; 参考题解 select distinct p1.product_id,coalesce((select p2.new_pricefrom Products p2where p2.product_id p1.product_id and p2.change_date < 2019-08-16order by p2.…...

MySQL8的备份方案——全量(完全)备份(CentOS)

MySQL8的全量备份 一、安装备份工具二、备份数据三、恢复备份 点击跳转增量备份 点击跳转差异备份 点击跳转压缩备份 一、安装备份工具 官网 下载地址 备份所用工具为percona-xtrabackup 如果下方安装工具的教程失效&#xff0c;请点击上方下载地址转到官方文档查看 下载该工…...

JVM监控及诊断工具-命令行篇--jcmd命令介绍

JVM监控及诊断工具-命令行篇5-jcmd&#xff1a;多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后&#xff0c;新增了一个命令行工具jcmd。它是一个多功能的工具&#xff0c;可以用来实现前面除了jstat之外所有命令的功能…...

c++信号和槽机制的轻量级实现,sigslot 库介绍及使用

Qt中的信号与槽机制很好用&#xff0c;然而只在Qt环境中。在现代 C 编程中&#xff0c;对象间的通信是一个核心问题。为了解决这个问题&#xff0c;许多库提供了信号和槽&#xff08;Signals and Slots&#xff09;机制。今天推荐分享一个轻量级的实现&#xff1a;sigslot 库。…...

云原生项目纪事系列 - 项目管理的鲜活事例

大规模云原生系统的新颖性、建设性和挑战性&#xff0c;吸引着许多有数学思想、哲学意识和美学观念的系统架构师&#xff0c;老模也是其中一员。 老模即是文史家庭出身&#xff0c;又有理工学业背景&#xff0c;他基于平时记录的翔实细节&#xff0c;秉持客观原则&#xff0c;使…...

【Vite】快速入门及其配置

概述 Vite是前端构建工具。vite 相较于webpack,vite采用了不同的运行方式&#xff1a; 开发时&#xff0c;并不对代码打包&#xff0c;而是直接采用ESM的方式来运行项目在项目打包部署时&#xff0c;使用 rollup 对项目进行打包除了速度外&#xff0c;vite使用起来也更加方便…...

Armv8/Armv9架构的学习大纲-学习方法-自学路线-付费学习路线

本文给大家列出了Arm架构的学习大纲、学习方法、自学路线、付费学习路线。有兴趣的可以关注&#xff0c;希望对您有帮助。 如果大家有需要的&#xff0c;欢迎关注我的CSDN课程&#xff1a;https://edu.csdn.net/lecturer/6964 ARM 64位架构介绍 ARM 64位架构介绍 ARM架构概况…...

vue 中 ui 组件二次封装后 ref 怎么穿透到子组件里

情景&#xff1a;element-ui 二次封装了 el-table 组件&#xff0c;使用封装组件时&#xff0c;想要调用 el-table 组件内置的一些方法。只在封装组件上定义 ref 是拿不到 el-table 内置方法的。解决方法如下。 1. vue2 封装组件 <template><el-table ref"inn…...

sourcetree中常用功能使用方法及gitlab冲突解决

添加至缓存&#xff1a;等于git add 提交&#xff1a;等于git commit 拉取/获取&#xff1a;等于git pull ,在每次要新增代码或者提交代码前需要先拉取一遍服务器中最新的代码&#xff0c;防止服务器有其他人更新了代码&#xff0c;但我们自己本地的代码在我们更新前跟服务器不…...

SQL Server分布式查询:跨数据库的无缝数据探索

SQL Server分布式查询&#xff1a;跨数据库的无缝数据探索 在当今的企业环境中&#xff0c;数据往往分散在不同的数据库和服务器上。SQL Server的分布式查询功能提供了一种强大的手段&#xff0c;允许用户编写单一的查询来访问和操作分散在不同SQL Server实例中的数据。本文将…...

【字少图多剖析微服务】深入理解Eureka核心原理

深入理解Eureka核心原理 Eureka整体设计Eureka服务端启动Eureka三级缓存Eureka客户端启动 Eureka整体设计 Eureka是一个经典的注册中心&#xff0c;通过http接收客户端的服务发现和服务注册请求&#xff0c;使用内存注册表保存客户端注册上来的实例信息。 Eureka服务端接收的…...

如何在 Linux 中解压 ZIP 文件

ZIP 是一种常用的压缩文件格式&#xff0c;用于存储和传输多个文件。在 Linux 系统中&#xff0c;解压 ZIP 文件非常简单。 使用 unzip 命令 unzip 是一个专用于解压 ZIP 文件的命令行工具。要使用它&#xff0c;请打开终端并输入以下命令&#xff1a; 例如&#xff0c;要解…...

IDEA的APIPost接口测试插件详解

APIPOST官方网址 一、安装APIPost插件 打开IntelliJ IDEA&#xff1a; 启动您的IntelliJ IDEA开发环境。 导航到插件设置&#xff1a; 在Windows或Linux上&#xff0c;点击 File > Settings。在macOS上&#xff0c;点击 IntelliJ IDEA > Preferences。 搜索并安装APIPo…...

[经验] 驰这个汉字的拼音是什么 #学习方法#其他#媒体

驰这个汉字的拼音是什么 驰&#xff0c;是一个常见的汉字&#xff0c;其拼音为“ch”&#xff0c;音调为第四声。它既可以表示动词&#xff0c;也可以表示形容词或副词&#xff0c;意义广泛&#xff0c;经常出现在生活和工作中。下面就让我们一起来了解一下“驰”的含义和用法。…...

生成式人工智能落地校园与课堂的15个场景

生成式人工智能正在重塑教育行业&#xff0c;为传统教学模式带来了革命性的变化。随着AI的不断演进&#xff0c;更多令人兴奋的应用场景将逐一显现&#xff0c;为学生提供更加丰富和多元的学习体验。 尽管AI在教学中的应用越来越广泛&#xff0c;但教师们也不必担心会被完全替代…...

C# 中的事件

1.事件的概念 在C#中&#xff0c;事件是一种特殊的委托类型&#xff0c;用于在对象之间提供一种基于观察者模式的通知机制。事件的发送方定义了一个委托&#xff0c;委托类型的声明包含了事件的签名&#xff0c;即事件处理器方法的签名。事件的订阅者可以通过运算符来注册事件…...

一、单例模式

文章目录 1 基本介绍2 实现方式2.1 饿汉式2.1.1 代码2.1.2 特性 2.2 懒汉式 ( 线程不安全 )2.2.1 代码2.2.2 特性 2.3 懒汉式 ( 线程安全 )2.3.1 代码2.3.2 特性 2.4 双重检查2.4.1 代码2.4.2 特性 2.5 静态内部类2.5.1 代码2.5.2 特性 2.6 枚举2.6.1 代码2.6.2 特性 3 实现的要…...

B树:高效的数据存储结构

在计算机科学中&#xff0c;B树&#xff08;B-Tree&#xff09;是一种平衡多路查找树&#xff0c;它广泛应用于数据库和文件系统等需要高效数据存储和检索的场景。B树的设计旨在优化磁盘I/O操作&#xff0c;通过减少磁盘访问次数来提高数据检索的效率。本文将介绍B树的基本概念…...

[Vulnhub] TORMENT IRC+FTP+CUPS+SMTP+apache配置文件权限提升+pkexec权限提升

信息收集 IP AddressOpening Ports192.168.101.152TCP:21,22,25,80,111,139,143,445,631 $ nmap -p- 192.168.101.152 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.8 or later | ftp-anon: Anonymous FTP login a…...

<数据集>安全帽佩戴识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3912张 图片分辨率&#xff1a;640640 标注数量(xml文件个数)&#xff1a;3912 标注数量(txt文件个数)&#xff1a;3912 标注类别数&#xff1a;2 标注类别名称&#xff1a;[no-helmet, helmet] 序号类别名称图片…...

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-21 VTC视频时序控制器设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…...

记录uni-app横屏项目:自定义弹出框

目录 前言&#xff1a; 正文&#xff1a; 前言&#xff1a;横屏的尺寸问题 最近使用了uniapp写了一个横屏的微信小程序和H5的项目&#xff0c;也是本人首次写的横屏项目&#xff0c;多少是有点踩坑不太适应。。。 先说最让我一脸懵的点&#xff0c;尺寸大小&#xff0c;下面一…...

泰州网站建设方案推广/电商网站订烟

质数又称素数。指在一个大于1的自然数中&#xff0c;除了1和此整数自身外&#xff0c;没法被其他自然数整除的数。或在所有比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数或素数。 换句话说&#xff0c;只有两个正因数&#xff08;1和自己&#xff09;的自然…...

河南网站排名优化价格/搜狗推广登录平台官网

作为系列文章的第六篇&#xff0c;本篇主要在前文的探索下&#xff0c;针对描述一下 Widget 中的一些有意思的原理。 前文&#xff1a; 一、Dart语言和Flutter基础二、 快速开发实战篇三、 打包与填坑篇四、Redux、主题、国际化五、 深入探索首先我们需要明白&#xff0c;Widge…...

小电影网站怎么做的/电商培训视频教程

论文&#xff1a;Group Sampling for Scale Invariant Face Detection 论文链接&#xff1a;http://openaccess.thecvf.com/content_CVPR_2019/papers/Ming_Group_Sampling_for_Scale_Invariant_Face_Detection_CVPR_2019_paper.pdf 这篇是发表在CVPR2019的关于人脸检测的文章…...

网站收录500多页/苏州seo网站优化软件

前言 随着Android系统的不断更新和发展&#xff0c;现在越来越多的硬件产品选择用安卓系统作为运行环境&#xff0c;电视机&#xff0c;机顶盒、门禁、行车记录仪、车载系统、单兵设备等等&#xff0c;Android系统底层还是Linux&#xff0c;但对上层的开发和维护就变得容易很多…...

有没有专门做根雕的网站/百度推广客户端教程

本文记录istio搭建入口网关以及流量路由管控的场景。 一、应用准备 本文创建一个sprinboot应用做为docker镜像用于后面的验证。该springboot应用只提供了一个接口&#xff0c;分两个版本。 v1 版本&#xff1a; RestController RequestMapping("/test") public c…...

网站建设服务介绍/seo海外

C实现生产guid唯一号 在日常软件开发中&#xff0c;我们经常需要一个唯一标识来标识一个对象或编码文件&#xff0c;下面是C实现的方法&#xff0c;其中sgi_log_t.h头文件定义在log4cplus应用 -日志管理类接口文章中有说明&#xff0c;为了更好的记录生产的guid&#xff1b;#in…...