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¶m2=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…...
微软史诗级的蓝屏
本周经历了微软的蓝屏,一直到周末还在加班处理公司的问题。 个人终端受到的影响较大,服务器上也受到了影响。因为蓝屏的事情导致不少麻烦,据同事说因为蓝屏的问题,MGH 的手术安排也受到了影响。 目前我们也在着手处理有部署 Wind…...
HALCON数据结构
一、HALCON数据结构简介 1、HALCON中有两类参数:图形参数和控制参数。 2、HALCON算子参数中,图形输入参数、图形输出参数、控制输入参数和控制输出参数。 3、图形参数有:图像(image)、区域(region)和轮廓(XLD) 4、控制参数有:…...
数据库系统概论:事务与并发一致性问题
随着网络应用的普及,数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面,旨在提高系统的吞吐量和响应时间,以满足多用户同时访问数据库的需求。然而,这…...
Python编程基础:元组类型、字典类型、集合类型
目录 元组类型创建/删除元组访问/操作元组元组生成式字典类型创建/删除字典访问/操作字典字典相关函数集合类型创建/删除集合集合相关操作符访问/操作集合元组类型 元组是Python中内置的不可变序列,这是它跟列表的不同之处,它没有一系列增删改等操作,只可以使用索引和for循环…...
day2 单机并发缓存
文章目录 1 sync.Mutex2 支持并发读写3 主体结构 Group3.1 回调 Getter3.2 Group 的定义3.3 Group 的 Get 方法 4 测试 本文代码地址: https://gitee.com/lymgoforIT/gee-cache/tree/master/day2-single-node 本文是7天用Go从零实现分布式缓存GeeCache的第二篇。 …...
ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点
大规模集群,大语言模型(LLM)训练流量特点,ECMP(Equal-Cost Multi-Path Routing)流量极化拥塞原因。 视频分享在这: 2.1 ECMP等价多路由,大模型训练流量特点,拥塞冲突极化产生原因_哔哩哔哩_bi…...
Linux 注意事项
Linux 与 Windows 是两个相互独立的操作系统,两者有较大差距: 1.1 Linux 严格区分大小写(Windows不严格区分大小写); 1.2 Linux 中所有内容,硬件设备都以文件形式保存在 /dev 目录下(万物皆文件…...
力扣SQL50 指定日期的产品价格 双重子查询 coalesce
Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 👨🏫 参考题解 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 如果下方安装工具的教程失效,请点击上方下载地址转到官方文档查看 下载该工…...
JVM监控及诊断工具-命令行篇--jcmd命令介绍
JVM监控及诊断工具-命令行篇5-jcmd:多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能…...
c++信号和槽机制的轻量级实现,sigslot 库介绍及使用
Qt中的信号与槽机制很好用,然而只在Qt环境中。在现代 C 编程中,对象间的通信是一个核心问题。为了解决这个问题,许多库提供了信号和槽(Signals and Slots)机制。今天推荐分享一个轻量级的实现:sigslot 库。…...
云原生项目纪事系列 - 项目管理的鲜活事例
大规模云原生系统的新颖性、建设性和挑战性,吸引着许多有数学思想、哲学意识和美学观念的系统架构师,老模也是其中一员。 老模即是文史家庭出身,又有理工学业背景,他基于平时记录的翔实细节,秉持客观原则,使…...
【Vite】快速入门及其配置
概述 Vite是前端构建工具。vite 相较于webpack,vite采用了不同的运行方式: 开发时,并不对代码打包,而是直接采用ESM的方式来运行项目在项目打包部署时,使用 rollup 对项目进行打包除了速度外,vite使用起来也更加方便…...
Armv8/Armv9架构的学习大纲-学习方法-自学路线-付费学习路线
本文给大家列出了Arm架构的学习大纲、学习方法、自学路线、付费学习路线。有兴趣的可以关注,希望对您有帮助。 如果大家有需要的,欢迎关注我的CSDN课程:https://edu.csdn.net/lecturer/6964 ARM 64位架构介绍 ARM 64位架构介绍 ARM架构概况…...
vue 中 ui 组件二次封装后 ref 怎么穿透到子组件里
情景:element-ui 二次封装了 el-table 组件,使用封装组件时,想要调用 el-table 组件内置的一些方法。只在封装组件上定义 ref 是拿不到 el-table 内置方法的。解决方法如下。 1. vue2 封装组件 <template><el-table ref"inn…...
sourcetree中常用功能使用方法及gitlab冲突解决
添加至缓存:等于git add 提交:等于git commit 拉取/获取:等于git pull ,在每次要新增代码或者提交代码前需要先拉取一遍服务器中最新的代码,防止服务器有其他人更新了代码,但我们自己本地的代码在我们更新前跟服务器不…...
SQL Server分布式查询:跨数据库的无缝数据探索
SQL Server分布式查询:跨数据库的无缝数据探索 在当今的企业环境中,数据往往分散在不同的数据库和服务器上。SQL Server的分布式查询功能提供了一种强大的手段,允许用户编写单一的查询来访问和操作分散在不同SQL Server实例中的数据。本文将…...
【字少图多剖析微服务】深入理解Eureka核心原理
深入理解Eureka核心原理 Eureka整体设计Eureka服务端启动Eureka三级缓存Eureka客户端启动 Eureka整体设计 Eureka是一个经典的注册中心,通过http接收客户端的服务发现和服务注册请求,使用内存注册表保存客户端注册上来的实例信息。 Eureka服务端接收的…...
如何在 Linux 中解压 ZIP 文件
ZIP 是一种常用的压缩文件格式,用于存储和传输多个文件。在 Linux 系统中,解压 ZIP 文件非常简单。 使用 unzip 命令 unzip 是一个专用于解压 ZIP 文件的命令行工具。要使用它,请打开终端并输入以下命令: 例如,要解…...
IDEA的APIPost接口测试插件详解
APIPOST官方网址 一、安装APIPost插件 打开IntelliJ IDEA: 启动您的IntelliJ IDEA开发环境。 导航到插件设置: 在Windows或Linux上,点击 File > Settings。在macOS上,点击 IntelliJ IDEA > Preferences。 搜索并安装APIPo…...
[经验] 驰这个汉字的拼音是什么 #学习方法#其他#媒体
驰这个汉字的拼音是什么 驰,是一个常见的汉字,其拼音为“ch”,音调为第四声。它既可以表示动词,也可以表示形容词或副词,意义广泛,经常出现在生活和工作中。下面就让我们一起来了解一下“驰”的含义和用法。…...
生成式人工智能落地校园与课堂的15个场景
生成式人工智能正在重塑教育行业,为传统教学模式带来了革命性的变化。随着AI的不断演进,更多令人兴奋的应用场景将逐一显现,为学生提供更加丰富和多元的学习体验。 尽管AI在教学中的应用越来越广泛,但教师们也不必担心会被完全替代…...
C# 中的事件
1.事件的概念 在C#中,事件是一种特殊的委托类型,用于在对象之间提供一种基于观察者模式的通知机制。事件的发送方定义了一个委托,委托类型的声明包含了事件的签名,即事件处理器方法的签名。事件的订阅者可以通过运算符来注册事件…...
一、单例模式
文章目录 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树:高效的数据存储结构
在计算机科学中,B树(B-Tree)是一种平衡多路查找树,它广泛应用于数据库和文件系统等需要高效数据存储和检索的场景。B树的设计旨在优化磁盘I/O操作,通过减少磁盘访问次数来提高数据检索的效率。本文将介绍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…...
<数据集>安全帽佩戴识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:3912张 图片分辨率:640640 标注数量(xml文件个数):3912 标注数量(txt文件个数):3912 标注类别数:2 标注类别名称:[no-helmet, helmet] 序号类别名称图片…...
[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-21 VTC视频时序控制器设计
软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…...
记录uni-app横屏项目:自定义弹出框
目录 前言: 正文: 前言:横屏的尺寸问题 最近使用了uniapp写了一个横屏的微信小程序和H5的项目,也是本人首次写的横屏项目,多少是有点踩坑不太适应。。。 先说最让我一脸懵的点,尺寸大小,下面一…...
做定制商品的网站/新闻类软文
1.(1)建立一个名为JEWRY的文件夹,并在其中建立一个新的子文件夹JAK;(2)将C:\\TABLE文件夹删除;(3)将C:\\UNION\\TEAM文件夹中的文件MARK.FOX删除;(4)将C:\\TAM\\UPIN文件夹中文件MAIN.PRG拷贝到…...
技术支持 海安网站建设/怎么知道自己的域名
惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 找到了两种方式: 1、同个new 对象的形式对 B对象的某一个属性复制 而这个值,就是当前页面的查询值 [构造函数传参,在new B的时候…...
做网站好赚钱吗/站长之家网站排名
华为ssh安全连接的配置方法如下:在模拟器ensp中拉一台路由器和云出来。首先将路由器和云路由调通,让我们的电脑外部可以和路由器通信。AR1的基础配置如下:system-view Enter system view, return user view with CtrlZ. [Huawei]sysname AR1[…...
网站开发常去的论坛/汕头百度seo公司
任务1——搭一个框架 用const定义全局的常变量password,作为银行卡的密码。 判断输入的密码是否正确,如果不正确,提示,否则,继续下面的工作。 用switch多分支完成显示。 /**Copyright (c) 2014,烟台大学计算机学院*All…...
苏州网站制作设计/网站制作哪家公司好
关注欧喵,带你领略最好玩的游戏,给你奉上最高额的返利!说起诺基亚手机,大家首先想到的应该是那款神奇的砖头手机吧!就是不知道当年有多少人真正用它来砸过核桃(不好意思,有点跑题)。…...
成都手机号码销售网站建设/北京seo公司工作
原文地址:Go-翻过的一些面试题目 1、以下代码会输出什么?请简要说明。 var c make(chan int) var a intfunc f() {a 1<-c }func main() {go f()c <- 0print(a) } 能正确输出1,不过主协程会阻塞 f() 函数的执行。 2、以下代码会输…...