您现在的位置是:网站首页> 学习资源
★★★网络技术相关★★★
- 学习资源
- 2025-09-30
- 1336人已阅读
★★★网络技术相关★★★
几种让同一 VLAN 内不同 IP 段的两台主机能够通讯的方法及实际例子和配置方法
使用proxypin抓包某片app(影视资源平台)接口,实现不安装app也能白嫖看电影
IP地址与子网掩码
一、IP地址
1.IP地址分类
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”。
二进制表示
A类地址分配给规模特别大的网络使用,B类地址分配给一般的中型网络,C类地址分配给小型网络,如局域网,C类地址分配给小型网络,如局域网。
十进制表示及二进制IP地址特征
很多情况下IP地址会以十进制表示,但是大家也不要忘了他的二进制表现形式
IP地址构成
IP地址 = 网络地址 + 主机地址
这儿的IP地址表现形式参考二进制,若从十进制表现形式(例1.0.0.0)来看,点隔开了每个字节(1字节8位),也就是说A类地址第一个字节是网络地址、后三个字节是主机地址。
比如一个C类IP地址:192.168.1.1,那么网络地址:192.168.1.0、主机地址:0.0.0.1
网络地址是子网中最小的地址,主机地址该网段中 主机的地址编号,大家把网络地址想象成街道地址,把主机地址想象成门牌号就容易理解了,两者结合的IP地址就是具体的家庭地址(电脑主机)。
二、子网掩码
子网掩码是一个32位的2进制数 ,它必须结合IP地址一起使用。
子网掩码只有一个作用,就是将某个IP地址划分成“网络地址”和“主机地址”两部分。
其实很多时候,你并不知道这个IP地址究竟是A类、B类还是C类地址,那么子网掩码的作用就出现了,子网掩码通过和IP地址的“与”运算,求出主机地址是多少。
位与()即如果两个位进行比较两位同时为1,结果才为1,否则结果为0。??
125 & 7
二进制: 01111101 & 00000111
位与比较:
0 1 1 1 1 1 0 1
---------------
0 0 0 0 0 1 1 1
| | | | | | | |
× × × × ×√ × √
| | | | | | | |
0 0 0 0 0 1 0 1
结果: 125&7 = 0000 0111 = 5
默认子网掩码
十进制255也就是二进制11111111,1的个数正是缩写的含义,假如子网掩码是254.0.0.0(二进制11111110),那么它的缩写就是/7
计算公式及案例
计算公式:网络地址 = IP & 子网掩码
主机地址=用 IP 地址的二进制形式减去网络地址的二进制形式,就可以得到主机地址部分
案例1:
三、广播地址
广播地址是专门用于同时向网络中所有工作站进行发送的一个地址
广播地址是该子网主机地址全1的地址,即子网中最大的地址
比如案例1中的网络地址192.163.0.0(二进制11000000 10100011 00000000 00000000),将其主机地址位置都填上1(二进制11000000 10100011 11111111 11111111),那么他的网络地址就是192.163.255.255(十进制),举个例子,不一定符合现实~
计算方式:广播地址 = (~子网掩码) | 网络地址
这计算公式意思是(子网掩码位取反)或网络地址,需要相关知识,详情见此链接:位运算 看这篇就够了
个人建议形象理解吧,往网络地址的主机地址位置(都是0)填上1即可,下边的案例二算是进阶吧,有需求的同学可以学习下。
案例2:
四、子网容量相关
(1)子网数
根据子网掩码可划分的最大子网数
计算方式:子网数 = 2^(实际子网掩码缩写 - 相应网络类型默认子网掩码缩写)
可想而知,如果实际子网掩码就是默认子网掩码(255.255.255.0—/24),子网数=2^(24-24),也就是说子网数为1(2的0次方);
如果实际子网掩码为255.255.240.0(11111111 11111111 11111110 00000000—/23) ,子网数=2 ^(24-23),相应的子网数为2 ....
(2)最大主机数
计算方式:最大主机数 = 2^(主机地址的位数)
这儿的位数是指二进制的位数,比如2的二进制为 10,占用2个二进制位,位数是2
假如一个IP地址的主机地址是0.0.0.1(00000000 00000000 00000000 00000001),那么位数是1,最大主机数就是2。
(3)可用主机数
计算方式:可用主机数 = 最大主机数 - 2
由于主机位全为0是网络地址,全为1是广播地址,所以要减2
华为交换机
普通交换机(二层交换机)
三层交换机
不仅具备二层交换功能,还具有部分路由器的功能,工作在网络层。它可以根据 IP 地址进行数据包的转发。
二层交换机和三层交换机的区别
1.工作层次不同
二层交换机工作在 OSI 模型的数据链路层(第二层)。它主要根据 MAC 地址来进行数据帧的转发。例如,在一个小型局域网中,当一台计算机 A 要向计算机 B 发送数据时,二层交换机通过学习计算机 A 和 B 的 MAC 地址,构建 MAC 地址表,然后直接将数据帧从与计算机 B 相连的端口转发出去,它不关心 IP 地址等网络层信息。
三层交换机工作在网络层(第三层),它可以根据 IP 地址进行数据包的转发。这就好比在一个较大的网络环境中,可能存在多个不同的子网,三层交换机能够识别数据包中的 IP 地址,并根据路由表信息将数据包转发到正确的子网中。
2.功能特性不同
VLAN(虚拟局域网)支持
二层交换机支持 VLAN 功能。它可以将一个物理的局域网划分成多个逻辑上独立的 VLAN,不同 VLAN 之间的设备在二层是相互隔离的,无法直接通信,这样可以有效地控制广播域,提高网络的安全性和灵活性。例如,在企业网络中,可以将不同部门(如销售部、技术部、财务部)划分到不同的 VLAN 中。
三层交换机同样支持 VLAN 功能,并且可以为不同 VLAN 配置 IP 地址,实现 VLAN 间的路由。这样就能够让不同 VLAN 中的设备通过三层交换机进行通信,比如销售部 VLAN 中的计算机可以通过三层交换机与技术部 VLAN 中的服务器进行数据交互。
路由功能
二层交换机没有路由功能,它不能实现不同网络之间的数据包转发。如果需要连接不同的网络,必须依靠路由器来完成。
三层交换机具有路由功能,它内部集成了部分路由器的功能。它可以通过静态路由或动态路由协议(如 RIP、OSPF 等)来构建路由表,实现不同子网之间的数据包转发,从而减少了对外部路由器的依赖,提高了网络的转发效率。
3.数据转发原理不同
二层交换机转发数据帧是基于 MAC 地址表。当交换机收到一个数据帧时,它会查看数据帧的目的 MAC 地址,然后在 MAC 地址表中查找对应的端口。如果找到匹配的端口,就将数据帧从该端口转发出去;如果找不到,就会将数据帧向除了接收端口之外的所有端口进行广播,直到目的设备响应,然后交换机学习到该设备的 MAC 地址并更新 MAC 地址表。
三层交换机转发数据包时,首先会查看数据包的目的 IP 地址。它会根据路由表来确定数据包应该从哪个端口转发出去。如果数据包的目的 IP 地址在本地子网内,它会通过 ARP 协议获取目的设备的 MAC 地址,然后将数据包封装成数据帧,按照 MAC 地址进行转发;如果目的 IP 地址在其他子网,它会将数据包转发到下一跳路由器对应的端口。
4.应用场景不同
二层交换机适用于小型的局域网环境,如家庭网络、小型办公室网络等。在这些场景中,网络规模较小,一般不需要进行不同网络之间的通信,主要是实现同一局域网内设备之间的快速数据交换,并且通过 VLAN 来简单地划分广播域。
三层交换机主要应用于中大型企业网络、园区网络等场景。在这些网络中,往往存在多个子网,需要实现不同子网之间的通信,同时又要保证网络的高效性。三层交换机可以很好地满足这些需求,它可以在保证高性能数据转发的同时,实现 VLAN 间的路由和不同子网之间的通信。
核心交换机配置命令示例
设置交换机名称和管理 IP 地址:
system-view
sysname CoreSwitch
interface Vlanif1
ip address 192.168.1.1 255.255.255.0
1.创建 VLAN:
vlan batch 10 20 30 100 //假设创建了部门 A 的 VLAN10、部门 B 的 VLAN20、部门 C 的 VLAN30 和外网访问 VLAN100
2.配置 VLAN 接口 IP 地址(以 VLAN10 为例):
interface Vlanif10
ip address 192.168.10.1 255.255.255.0
3.配置端口加入 VLAN:
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
4.配置路由(假设下一跳地址为 192.168.1.254):
ip route-static 0.0.0.0 0.0.0.0 192.168.1.254
汇聚交换机配置命令示例
设置交换机名称:
system-view
sysname AggregationSwitch
配置 trunk 端口:
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20 30 100
简单的 VLAN IP 配置
system-view
vlan 10
quit
interface Vlanif10
ip address 192.168.10.1 255.255.255.0
quit
上述命令先创建了 VLAN 10,然后进入 VLAN 10 的接口视图,并为其配置了 IP 地址 192.168.10.1,子网掩码为 255.255.255.0 。通过这种配置,连接到该 VLAN 的设备可以使用此 IP 地址作为网关来进行通信
多个 VLAN 及端口划分配置
system-view
vlan batch 20 30
interface GigabitEthernet0/0/1
port link-type access
port default vlan 20
interface GigabitEthernet0/0/2
port link-type access
port default vlan 30
interface Vlanif20
ip address 192.168.20.1 255.255.255.0
interface Vlanif30
ip address 192.168.30.1 255.255.255.0
首先使用 vlan batch 命令一次性创建了 VLAN 20 和 VLAN 30 .
然后将 GigabitEthernet0/0/1 端口配置为 access 模式,并划分到 VLAN 20;将 GigabitEthernet0/0/2 端口配置为 access 模式,并划分到 VLAN 30.
最后分别为 VLAN 20 和 VLAN 30 的接口配置了相应的 IP 地址,使得连接到这两个 VLAN 的设备能够通过对应的网关进行数据转发.
基于 Trunk 端口和多个交换机的 VLAN IP 配置
假设有两台华为交换机 S1 和 S2,以下是配置步骤:
交换机 S1 的配置
system-view
vlan batch 10 20
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
interface Vlanif10
ip address 192.168.10.1 255.255.255.0
interface Vlanif20
ip address 192.168.20.1 255.255.255.0
交换机 S2 的配置
system-view
vlan batch 10 20
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
interface Vlanif10
ip address 192.168.10.2 255.255.255.0
interface Vlanif20
ip address 192.168.20.2 255.255.255.0
在两台交换机上都创建了 VLAN 10 和 VLAN 20.
交换机 S1 的 GigabitEthernet0/0/1 端口和交换机 S2 的 GigabitEthernet0/0/1 端口都配置为 trunk 模式,并允许 VLAN 10 和 VLAN 20 通过,实现了两台交换机之间相同 VLAN 的数据传输.
在交换机 S2 上,将 GigabitEthernet0/0/2 端口划分到 VLAN 10,GigabitEthernet0/0/3 端口划分到 VLAN 20,以便连接不同 VLAN 的终端设备.
最后分别为两台交换机上的 VLAN 10 和 VLAN 20 接口配置了不同的 IP 地址,作为各自 VLAN 内设备的网关,使得不同 VLAN 之间可以通过交换机的路由功能进行通信
几种让同一 VLAN 内不同 IP 段的两台主机能够通讯的方法及实际例子和配置方法
通过配置 VLANIF 接口实现
实例需求:某企业网络中,同一 VLAN 10 的主机分别属于两个网段 10.1.1.1/24 和 10.1.2.1/24,要求这两个网段的主机能够互通.
配置方法 :
配置 VLAN 及接口:
plaintext
system-view
sysname switch
vlan batch 10
interface gigabitethernet 1/0/1
port link-type access
port default vlan 10
quit
interface gigabitethernet 1/0/2
port link-type access
port default vlan 10
quit
配置 VLANIF 接口:
plaintext
interface vlanif 10
ip address 10.1.1.1 24
ip address 10.1.2.1 24 sub
quit
配置主机网关:配置主机 1 的 IP 地址为 10.1.1.2/24,缺省网关为 10.1.1.1;配置主机 2 的 IP 地址为 10.1.2.2/24,缺省网关为 10.1.2.1 。
通过路由器物理接口实现
实例需求: 有两个网段 192.168.1.0/24 和 10.0.0.0/24 的主机处于同一 VLAN,通过路由器实现互通.
配置方法 :
路由器接口配置:在路由器上,为连接不同网段的物理接口配置相应网段的 IP 地址,如接口 1 配置 192.168.1.254/24,接口 2 配置 10.0.0.254/24 。
主机网关配置:192.168.1.0/24 网段的主机默认网关设置为 192.168.1.254,10.0.0.0/24 网段的主机默认网关设置为 10.0.0.254 。
通过路由器子接口实现
实例需求:同一 VLAN 下有 VLAN 10(网段 192.168.10.0/24)和 VLAN 20(网段 192.168.20.0/24)的主机需要互通.
配置方法 :
路由器子接口配置:
plaintext
interface gigabitethernet 0/0/0.10
dot1q termination vid 10
ip address 192.168.10.254 255.255.255.0
arp broadcast enable
quit
interface gigabitethernet 0/0/0.20
dot1q termination vid 20
ip address 192.168.20.254 255.255.255.0
arp broadcast enable
quit
交换机配置:将连接主机的接口分别加入对应的 VLAN,并将与路由器相连的接口配置为 trunk 模式,允许相应的 VLAN 通过 。
主机网关配置:VLAN 10 的主机默认网关设置为 192.168.10.254,VLAN 20 的主机默认网关设置为 192.168.20.254 。
通过软路由实现
实例需求:在一个局域网中,有两个网段 192.168.1.0/24 和 10.0.0.0/24 的主机处于同一 VLAN,通过安装了 Windows 2000 Server 的计算机作为软路由来实现互通.
配置方法 :
软路由安装与配置:在计算机中安装 Windows 2000 Server 及两块网卡,分别为两块网卡配置 IP 地址 192.168.1.1/255.255.255.0 和 10.0.0.1/255.0.0.0 。以域用户管理员身份登录,依次单击 “开始 / 程序 / 管理工具 / 路由和远程访问”,运行 “路由和远程访问服务器安装向导”,选择 “网络路由器” 选项进行安装和配置,如选择 RIP 协议等,并为 RIP 添加两个网络接口。
主机网关配置:192.168.1.0/24 网段的主机默认网关设置为 192.168.1.1,10.0.0.0/24 网段的主机默认网关设置为 10.0.0.1 。
交换机配置教程】全B站最详细的交换机原理讲解与配置教程
使用proxypin抓包某片app(影视资源平台)接口,实现不安装app也能白嫖看电影
一、背景
最近想下载一些电影趁着放假高铁路上看,但是发现以前常用的资源网站访问不了了,然后网上搜到“某片影视app”。
安装后发现软件内资源挺全、挺新,并且支持多端安装、支持在线播放、影片下载、边下边播,且资源网络速度也很高,主要还是免费的,也没啥广告,是个不错的综合影音平台。相比于现在主流的收费平台,某奇艺、某某视频,各种乱收费、广告泛滥的现象,可谓是业界良心。
但是,有网友反馈说:此软件存在“安全隐患”,曾被火绒扫出来是frp内网穿透软件。也有网友反馈:它偷跑cdn带宽,几乎拖垮自己的电脑。偷跑或者明着跑cdn我能接受,毕竟天下没有免费的午餐。但是安全隐患不容小觑。
于是,我就萌生了一个想法:能不能只看对方的资源,不安装对方的软件,把软件还当成资源网站来用?俗称白嫖 [捂脸偷笑]
二、技术验证
2.1、使用抓包工具抓取app的接口
在一台闲置的、没有个人信息的android手机上安装目标app,同时安装并配置proxypin抓包工具(android版),
根据proxypin的内部提示在手机上安装根证书,并开启https代理。
点击首页右下角“开始”按钮进入监听模式,此时在请求列表会展示出本手机所有的代理请求
点击首页右上角的“清理”按钮可以清空当前代理请求列表
然后打开目标app,将平时找资源的过程操作一遍:浏览影片列表、查看详情、播放
回到proxypin暂停监听,分析监听到请求
如果觉得手机上看请求参数费劲,也可以使用pc版本的proxypin的“手机连接”功能,将手机抓包记录同步到电脑上查看
proxypin://connect?host=192.168.31.127&port=9099 (二维码自动识别)
2.2、分析接口与页面之间的逻辑,确定核心接口
将请求响应体与页面内容进行比较、同时结合接口名称推断出几个核心接口:
查询“电影->近期热映”列表内的前n个热门资源列表
通过此接口可以查看最新上线的电影资源,一般新上的资源在正规平台上线的第2天,这里就能看到资源。
curl --request GET \
--url 'https://api.ztcgi.com/api/dyTag/hand_data?category_id=1' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Encoding: gzip, deflate, br, zstd' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Host: api.ztcgi.com' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/137.0.7151.115 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:423;packageName:com.jp3.xg3' \
--header 'X-Requested-With: com.jp3.xg3' \
--header 'sec-ch-ua: "Android WebView";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"'
精简后的响应体JSON:
{
"code": 1,
"msg": "获取手动标签数据成功",
"data": {
"8": [], // 动作大片推荐
"32": [ // 近期热映推荐
{
"id": 569398, // 编号
"score": "6.1", // 评分
"title": "神奇4侠:初露锋芒", // 名称
"path": "/upload/video/2025/09/23/127c7f8d80dcd2f445de5ec0c74d6ebd.jpeg",
"tvimg": "/upload/video/2025/09/23/d2c518a75f346d07c37a773de8411db9.jpeg",
"tagimg": "/upload/video/2025/09/23/d2c518a75f346d07c37a773de8411db9.jpeg",
"mask": "HD中英双字"
}
]
}
}
响应体里data.32属性对应的列表则为"近期热映"的37部电影,应该是管理员在后台手动做了“热门”标记
对应app页面为:电影->近期热映
然后可以分析JSON里的名称和评分,选择自己感兴趣的电影。
还可以进一步查看它的封面,将上述path属性值前方加上有效域名即可查看:https://static.ztcuc.com/upload/video/2025/09/23/d2c518a75f346d07c37a773de8411db9.jpeg
如果域名http://static.ztcuc.com不能用了,可使用以下接口获取新的域名地址:
curl --request GET \
--url https://api.ztcgi.com/api/resourceDomainConfig \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Encoding: gzip, deflate, br, zstd' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Host: api.ztcgi.com' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/137.0.7151.115 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:423;packageName:com.jp3.xg3' \
--header 'X-Requested-With: com.jp3.xg3' \
--header 'sec-ch-ua: "Android WebView";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"'
2. 然后在此页面“上划加载更多”调用的接口 -不关心技术细节可忽略不看
curl --request GET \
--url 'https://api.ztcgi.com/api/dyTag/tpl2_data?id=32&page=1' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Encoding: gzip, deflate, br, zstd' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Host: api.ztcgi.com' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/137.0.7151.115 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:423;packageName:com.jp3.xg3' \
--header 'X-Requested-With: com.jp3.xg3' \
--header 'sec-ch-ua: "Android WebView";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"'
参数部分里的page=1表明是从第1页开始查询的,注意:这个页面默认进来不是直接查询此接口,而是先把上个接口的37个展示了之后,用户还想查看更多时才会调用,这里返回的资源就没有那么新。
id=32是资源分类编号,可以通过下面的接口查看分类名称
3. 获取电影分类名称 -不关心技术细节可忽略不看
curl --request GET \
--url 'https://api.ztcgi.com/api/dyTag/list?category_id=1' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Encoding: gzip, deflate, br, zstd' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Host: api.ztcgi.com' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/137.0.7151.115 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:423;packageName:com.jp3.xg3' \
--header 'X-Requested-With: com.jp3.xg3' \
--header 'sec-ch-ua: "Android WebView";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"'
从上图响应体可知:id=32代表类别名称为“近期热映”,同时hand_value与第1个接口返回的资源列表内影片名称拼接的字符串一样,所以,如果不关心封面和评分信息,这个接口也是够用的
注意:hand_value 字段下方的dataList字段没有参考意义。
对应app界面如下:
4. 查看影片详细信息 -核心接口
curl --request GET \
--url 'https://api.ztcgi.com/api/video/detailv2?id=569211' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Accept-Encoding: gzip, deflate, br, zstd' \
--header 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
--header 'Connection: keep-alive' \
--header 'Host: api.ztcgi.com' \
--header 'Sec-Fetch-Dest: empty' \
--header 'Sec-Fetch-Mode: cors' \
--header 'Sec-Fetch-Site: cross-site' \
--header 'User-Agent: Mozilla/5.0 (Linux; Android 11; MI 9 Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/137.0.7151.115 Mobile Safari/537.36;webank/h5face;webank/1.0;netType:NETWORK_WIFI;appVersion:423;packageName:com.jp3.xg3' \
--header 'X-Requested-With: com.jp3.xg3' \
--header 'sec-ch-ua: "Android WebView";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \
--header 'sec-ch-ua-mobile: ?1' \
--header 'sec-ch-ua-platform: "Android"'
参数id为第1个接口返回的影片id,关注哪个就获取哪个的id当成此接口的参数
响应体-精简版
"data": {
"score": "8.0", // 评分
"title": "戏台", // 名称
"description": " 民国年间,战乱频发。", // 简介
"others_name": [ // 其他名称
{
"value": "The Stage"
}
],
"source_list_source": [ // 资源地址
{
"name": "常规线路", // 资源路线1
"source_list": [
{
"url": "ftp://a.gbl.114s.com:20320/5392/戏台-2025_HD国语中英双字.mp4"
}
zi
},
{
"name": "JY线路", // 资源路线2,依次类推
"source_list": [
{
"url": "https://hd.ijycnd.com/play/kaz2p5ma/index.m3u8"
}
]
}
]
}
}
重点关注:source_list_source就是资源地址,ftp协议为MP4格式资源,https协议的m3u8文件为串流资源目录
将ftp://a.gbl.114s.com:20320/5392/戏台-2025_HD国语中英双字.mp4 添加到迅雷尝试进行下载,提示:域名解析失败,看来资源地址已失效
将m3u8地址(https://hd.ijycnd.com/play/kaz2p5ma/index.m3u8),添加到PotPlayer(支持串流播放的视频播放软件,vlc这款软件也不错,手机上推荐使用MX播放器,还支持直接下载),可实现在线播放。
如果只想下载串流视频到本地生成视频格式文件,可以使用fluent-m3u8-开源m3u8资源下载器
2.3、回溯上述接口使用过程
利用接口1查询最近热门电影
也可以使用接口3查看hand_value,不用解析json来看
2. 选中感兴趣电影的id作为接口2的参数,查询到资源地址
3. 将资源地址复制到第三方播放器进行播放或下载
2.4、接口鉴权
在实际抓取的请求中有几个接口是会传token参数(用户凭证)的,但是后来发现去掉后依然可以正常访问。个人猜测平台是为了满足访客访问,而没有强制鉴权。
我已经将上述接口导入到了apiPost,验证了无token可访问
三、总结
通过接口之间的组合使用可以快速的浏览、播放、下载喜欢的资源,且不用担心安装软件带来的安全问题。但是上述接口并不能保证一直有效,因为每个系统都会随着业务变化而调整接口,可能还会增强鉴权、参数防篡改、防重放机制。
如果你有电视剧、综艺等其他类目的需求,可借鉴此方案,自己动手。
如果你懂开发,还可以尝试把抓到的接口贴到cursor等ai编程工具里,快速生成python版的带有gui界面的小工具,但是不建议你将工具进行分享。
如果你的个人电脑、手机只是用来纯娱乐(适用大部分人),使用官方的软件是最佳选择,pc版本无广告,android版只有首屏广告,且在抓包的过程中没有发现大流量出入。
虽然这种盗版资源网站不合法,但是它给了我们一种选择,让我们不必忍受正版平台的“无限作恶”。个人还是希望这种平台能找到一种好的商业模式转正的,各位神通广大的网友可以支支招。
感谢用到的各种开源软件,proxypin确实让我眼前一亮,将抓包配置这件事情做的足够简单。
【声明】本文所涉及的技术、思路和工具仅用于测试交流,切勿将其用于非法入侵或攻击他人系统以及盈利等目的,一切后果由操作者自行承担!!!