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

p76 - Python 开发-内外网收集 Socket子域名DNS

数据来源

Python 开发相关知识点:

1.开发基础环境配置说明

        Windows10+Pycharm

2.Python 开发学习的意义

        学习相关安全工具原理
        掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况
        在二次开发 Bypass,日常任务,批量测试利用等方面均有帮助
        如:SRC 批量收集并利用,AWD 批量利用获取 FLAGCTF 加解密脚本等

3.本篇涉及的技术方向

        Socket,爬虫,正则表达式,框架开发等

演示案例:

IP&Whois&系统指纹获取代码段-外网
CDN&子域名&端口扫描&交互代码段-外网

 

01 域名反查IP功能

import os
import socket#
"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
ip = socket.gethostbyname('www.xiaodi8.com')
print(ip)  # 47.75.212.155

02、识别目标是否存在CDN(内容分发网络)

import os
import socket"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
"""
ip = socket.gethostbyname('www.xiaodi8.com')
print(ip)  # 47.75.212.155
"""
"""
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令
"""
#  使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data = os.system('nslookup www.xiaodi8.com')  # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
cdn_data = os.popen('nslookup www.xiaodi8.com')
cdn_datas =cdn_data.read() # read()读取返回的结果
x = cdn_datas.count('.')   # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x > 10:                 # CDN 不存在的一般是10个点以内,大于这个数就是存在(服务器有两这个点,这里的服务器是未知所有少了两个点)print("CDN存在")
else:print("CDN不存在")

03 域名扫描

1. 原生自写socket协议tcp,udp扫描开启的端口

import os
import socket
from whois import whois  # 安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-whois"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
"""
ip = socket.gethostbyname('www.xiaodi8.com')
print(ip)  # 47.75.212.155
"""
"""
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令
"""
#  使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data = os.system('nslookup www.xiaodi8.com')  # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
"""
cdn_data = os.popen('nslookup www.xiaodi8.com')
cdn_datas =cdn_data.read() # read()读取返回的结果
x = cdn_datas.count('.')   # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x > 10:                 # CDN 不存在的一般是10个点以内,大于这个数就是存在(服务器有两这个点,这里的服务器是未知所有少了两个点)print("CDN存在")
else:print("CDN不存在")
""""""
3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描
"""
# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports={'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','8888','7002','7001','8080',"9090",'8089',"4848"}
for i in ports:# 连接到服务端result = server.connect_ex(('www.xiaodi8.com',int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result == 0:print(f'连接成功,端口:{i}|open开启')else:print(f'连接失败,端口:{i}|close关闭')

2. 调用第三方模块等进行扫描

域名信息扫描

import os
import socket            # 网络编程模块
import time              # 时间模块
from whois import whois  # 第三方的域名查询模块  安装:pip install python-whois"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
"""
ip = socket.gethostbyname('www.xiaodi8.com')
print(ip)  # 47.75.212.155
"""
"""
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令
"""
#  使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data = os.system('nslookup www.xiaodi8.com')  # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
"""
cdn_data = os.popen('nslookup www.xiaodi8.com')
cdn_datas =cdn_data.read() # read()读取返回的结果
x = cdn_datas.count('.')   # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x > 10:                 # CDN 不存在的一般是10个点以内,大于这个数就是存在(服务器有两这个点,这里的服务器是未知所有少了两个点)print("CDN存在")
else:print("CDN不存在")
""""""
3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描
"""
# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
"""
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports={'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','8888','7002','7001','8080',"9090",'8089',"4848"}
for i in ports:# 连接到服务端result = server.connect_ex(('www.xiaodi8.com',int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result == 0:print(f'连接成功,端口:{i}|open开启')else:print(f'连接失败,端口:{i}|close关闭')
"""# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询:https://whois.chinaz.com/
# def whois_check(url):
data = whois("www.xiaodi8.com")
print(data)

子域名扫描

子域名字典

import os
import socket            # 网络编程模块
import time              # 时间模块
from whois import whois  # 第三方的域名查询模块  安装:pip install python-whois"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
"""
ip = socket.gethostbyname('www.xiaodi8.com')
print(ip)  # 47.75.212.155
"""
"""
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令
"""
#  使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data = os.system('nslookup www.xiaodi8.com')  # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
"""
cdn_data = os.popen('nslookup www.xiaodi8.com')
cdn_datas =cdn_data.read() # read()读取返回的结果
x = cdn_datas.count('.')   # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x > 10:                 # CDN 不存在的一般是10个点以内,大于这个数就是存在(服务器有两这个点,这里的服务器是未知所有少了两个点)print("CDN存在")
else:print("CDN不存在")
""""""
3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描
"""
# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
"""
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports={'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','8888','7002','7001','8080',"9090",'8089',"4848"}
for i in ports:# 连接到服务端result = server.connect_ex(('www.xiaodi8.com',int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result == 0:print(f'连接成功,端口:{i}|open开启')else:print(f'连接失败,端口:{i}|close关闭')
"""# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询:https://whois.chinaz.com/
"""
data = whois("www.xiaodi8.com")
print(data)
"""#子域名查询
#1.利用字典记载爆破进行查询
#2.利用 bing 或第三方接口进行查询
for zym_data in open('./子域名字典/dic.txt'):   # open() 方法读取文件zym_data = zym_data.replace('\n','')      # replace() 字符串的替换 将 \n 替换为空,就是把换行干掉(因为打印出来的数据多了很多空行)url = zym_data +'.xueersi.com'            # 拼接成完整的域名,就是查询xueersi.com的子域名try:                                      # 异常处理,因为如果子域名不存在gethostbyname() 查询会报错ip = socket.gethostbyname(url)        # socket.gethostbyname() 查询指定域名的ip地址,如果能查到就说明这里子域名是存在的print(f"{url} -> {ip}")time.sleep(0.1)                       # time.sleep() 延迟方法,单位:秒except Exception as e:pass                                  # pass 没啥特殊的意义就是用来补全语法不让这里是空报错的# print(f"error,{url}子域名不存在")

 

但是现在代码看起很乱 ,我们以后要使用也不是很方便,所以使用函数优化一下代码

Python开发-内外网收集Socket&子域名&DNS

import os
import socket            # 网络编程模块
import time              # 时间模块
from whois import whois  # 第三方的域名查询模块  安装:pip install python-whois
import sys               # sys模块提供了一系列有关Python运行环境的变量和函数,如:如sys.argv函数实现从程序外部向程序传递参数;sys.platform函数用于获取当前系统平台。"""
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令
"""
def ip_check(url):"""域名反查ip:param url: 要查询的域名,如:www.xiaodi8.com:return: None"""ip = socket.gethostbyname(url)print(ip)  # 47.75.212.155"""
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令
"""
#  使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data = os.system('nslookup www.xiaodi8.com')  # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
def cdn_check(url):# www.xiaodi8.com"""识别目标是否存在CDN(内容分发网络):param url: 要查询的域名,如:www.xiaodi8.com:return: None"""cdn_data = os.popen(f'nslookup {url}')cdn_datas =cdn_data.read() # read()读取返回的结果x = cdn_datas.count('.')   # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDNprint(cdn_datas)print(x)if x > 10:                 # CDN 不存在的一般是10个点以内,大于这个数就是存在(服务器有两这个点,这里的服务器是未知所有少了两个点)print("CDN存在")else:print("CDN不存在")"""
3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描
"""
# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
def port_check(url,ports=['21','22','135','443','445','80','1433','3306',"3389",'1521','8000','8888','7002','7001','8080',"9090",'8089',"4848"]):"""查询指定域名的开放端口:param url:   要查询的域名,如:www.xiaodi8.com:param ports:  要查询的端口默认是:{'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','8888','7002','7001','8080',"9090",'8089',"4848"}:return: None"""server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 常见的计算机端口for i in ports:# 连接到服务端result = server.connect_ex((url,int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result == 0:print(f'连接成功,端口:{i}|open开启')else:print(f'连接失败,端口:{i}|close关闭')# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询:https://whois.chinaz.com/
def whois_check(url):"""域名信息查询:param url: 要查询的域名,如:www.xiaodi8.com:return: None"""data = whois(url)print(data)"""子域名查询1.利用字典记载爆破进行查询2.利用 bing 或第三方接口进行查询
"""
def zym_check(url):"""子域名查询:param url: 要查询的域名,如:www.xueersi.com:return: None"""urls = url.replace('www.','')                 # 如果url中有带有www.就替换为空,www.for zym_data in open('./子域名字典/dic.txt'):   # open() 方法读取文件zym_data = zym_data.replace('\n','')      # replace() 字符串的替换 将 \n 替换为空,就是把换行干掉(因为打印出来的数据多了很多空行)url = zym_data + urls                     # 拼接成完整的域名,就是查询urls这个变量的子域名try:                                      # 异常处理,因为如果子域名不存在gethostbyname() 查询会报错ip = socket.gethostbyname(url)        # socket.gethostbyname() 查询指定域名的ip地址,如果能查到就说明这里子域名是存在的print(f"{url} -> {ip}")time.sleep(0.1)                       # time.sleep() 延迟方法,单位:秒except Exception as e:pass                                  # pass 没啥特殊的意义就是用来补全语法不让这里是空报错的# print(f"error,{url}子域名不存在")if __name__ == '__main__':   # 这里里面的代码是模块内部的测试代码,外部调用是不会执行的# port_check('www.xiaodi8.com')      # 查询开放的端口# ip_check('www.xiaodi8.com')      # 域名反查ip# cdn_check('www.xiaodi8.com')     # cdn查询# whois_check('www.xiaodi8.com')   # 域名信息查询# zym_check('www.xueersi.com')     # 调用子域名查询函数,把要查询的域名传入"""使用sys模块让我们写的脚本在程序外部也可以调用"""# 使用了sys模块的argv方法后我们就可以在程序外部给程序传参:如在cmd命令提示符中输入:python.exe的路径 当前的程序路径  参数1 参数2# sys.argv[0]   # 表示程序自身的文件路径# sys.argv[1]   # 表示程序的第一个参数# sys.argv[2]   # 表示程序的第二个参数try:check = sys.argv[1]urls = sys.argv[2]print("程序运行中...")if check == 'all':port_check(urls)  # 查询开放的端口ip_check(urls)  # 域名反查ipcdn_check(urls)  # cdn查询whois_check(urls)  # 域名信息查询zym_check(urls)  # 调用子域名查询函数,把要查询的域名传入except Exception as e:print("请在程序外部传入两个参数")

可以直接运行代码,也可以在程序外部运行代码

如在cmd命令提示符中输入:python.exe的路径 当前的程序路径 参数1 参数2

F:\网安软件\python3\python.exe F:\python项目\python_study\day76\test.py all www.xiaodi8.com

注意:如果要子域名的函数正常执行就要把cmd命令行的路径使用cd 改到程序的根目录或在把子域名的字典路径改成绝对路径


IP&计算机名&存活主机&端口扫描代码段-内网

如果希望在Python中正常使用python-nmap模块,必须先在系统中安装Nmap。因为在这个模块文件中会调用Nmap的一些功能。

Python安全渗透测试之Socket 模块、python-nmap模块_python 安全测试_Magiskpig的博客-CSDN博客

python-nmap模块安装命令:pip install  python-nmap

开一台虚拟机使用命令ipconfig 查看虚拟机的ip,将该ip的网段写入代码中进行检测

"""使用nmap模块进行扫描
"""
import nmap
def nmappascan():nm = nmap.PortScanner(nmap_search_path=('nmap', r"F:\网安软件\Nmap\nmap.exe"))try:# -T4指定扫描过程中使用的时序模板,总共6个等级(0 - 5),等级越高,扫描速度越快,但是容易被防火墙和入侵检测设备发现。在扫描中应选择合适的等级。# 使用-f 选项可以对 nmap 发送的探测数据包进行分段。这样将原来的数据包分成几个部分,目标网络的防御机制例如包过滤、防火墙等在对这些数据包进行检测的时候就会变得更加困难data = nm.scan(hosts='192.168.100.0/24',arguments='-T4 -F')# print(nm.all_hosts())  # all_hosts()#扫描的所有主机print(nm.csv())  # csv()函数:返回值是一个CSV(逗号分隔文件格式)的输出。如果想看的更清楚一点,可以使用print输出csv()的内容。# print(data)except Exception as err:print("error")if __name__ == '__main__':nmappascan()

Py 格式解析环境与可执行程序格式转换-Pyinstaller

Pyinstaller安装与介绍 

安装:pip install pyinstaller

更新:pip install --upgrade pyinstaller

然后在pthon项目文件的根目录打开cmd

输入:pyinstaller -F test76.py     #  -F 产生单个的可执行文件    test76.py 是要转换的文件名

打包后的.exe文件可以在不是python系统下执行

在项目的根目录下有个dist文件夹打包后的程序就在里面 

运行exe文件,把文件拉到cmd命令行中回车运行

 

相关文章:

p76 - Python 开发-内外网收集 Socket子域名DNS

数据来源 Python 开发相关知识点: 1.开发基础环境配置说明 Windows10Pycharm 2.Python 开发学习的意义 学习相关安全工具原理 掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况 在二次开发 Bypass,日常任务,批量测试利用…...

QCC51XX--eFush Key加密

https://blog.csdn.net/weixin_42162924/article/details/125828901?spm=1001.2014.3001.5502 在开始讲eFush Key加密操作之前,说一下这个操作的作用就是将自己的固件采用硬件的方式进行加密。 操作步骤 1.创建一个txt文本文件,参考文档“Qualcomm BlueSuite v3.1.4 Release…...

nginx http模块

1.模块依赖2. 模块的初始化2.1 location的定义location的定义包含以下几种location [ | ~ | ~* | ^~ ] uri { ... } location name { ... }:表示精确匹配,只有请求的url路径与后面的字符串完全相等时,才会命中,不支持location嵌套~&#xff…...

守护进程 || 精灵进程

目录 守护进程(deamon) || 精灵进程 特点 什么是前台进程组 把自己写的服务器deamon deamon代码 守护进程(deamon) || 精灵进程 特点 01. 他的PPID是1(附件特征)02. COMMAND --- 称为进程启动的命令03…...

Zookeeper3.5.7版本——客户端命令行操作(znode 节点数据信息)

目录一、命令行语法二、znode 节点数据信息2.1、查看当前znode中所包含的内容2.2、查看当前节点详细数据2.3、节点详细数据解释一、命令行语法 命令行语法列表 命令基本语法功能描述help显示所有操作命令ls path使用 ls 命令来查看当前 znode 的子节点 [可监听]-w 监听子节点变…...

如何写好单测

1、为什么要写单测? 单测即单元测试(Unit Test),是对软件的基本组成单元进行的测试,比如函数、过程或者类的方法。其意义是: 功能自测,发现功能缺陷自我Code Review测试驱动开发促进代码重构并…...

CDH-6.3.2内置spark-2.4.0的BUG

1. 背景 公司最近在新建集群,全部采用开源的大数据框架,并且将之前使用的阿里云的所有服务进行下线,其中就涉及到了旧任务的迁移。 2. 任务 2.1. 简述 我接手到一个之前的 spark 任务,是读取阿里 LogStore 数据,然…...

SpringCloud之ElasticSearch笔记

ElasticSearch 初识ElasticSearch ElasticSearch是什么 ElasticSearch一个基于Lucene的底层的开源的分布式搜索引擎,可用来实现搜索,日志统计,分析,系统监控 正向索引和倒排索引 正向索引:逐条扫描(my…...

数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)

文章目录维纳滤波的缺点约束最小二乘方滤波给一个实际例子吧维纳滤波的缺点 维纳滤波(Wiener Filter),虽然是一种非常强大的退化图像还原算法,但是从实验过程我们也发现它存在着致命的缺陷,那就是要求输入退化系统的 …...

2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。

2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。 答案2023-03-05: 使用 github.com/moonfdd/ffmpeg-go 库。 先启动lal流媒体服务器软件,然后再执行命令: go…...

MathType7最新版免费数学公式编辑器

话说我也算是 MathType准资深(DB)用户了,当然自从感觉用DB不好之后,我基本上已经抛弃它了,只是前不久因为个别原因又捡起来用了用,30天试用期间又比较深入的折腾了下,也算是变成半个MathType砖家,coco玛奇朵简单介绍一下这款软件:在很可能看到这儿的你还没有出生的某个年月&…...

一文带你入门angular(中)

一、angular中的dom操作原生和ViewChild两种方式以及css3动画 1.原生操作 import { Component } from angular/core;Component({selector: app-footer,templateUrl: ./footer.component.html,styleUrls: [./footer.component.scss] }) export class FooterComponent {flag: b…...

单例设计模式共享数据问题分析、解决(c++11)设计多线程。

系列文章目录 单例设计模式共享数据问题分析、解决; 文章目录系列文章目录前言一、单例模式1.1 基本概念1.2 单例设计模式共享数据问题分析、解决1.3 std::call_once()介绍二、代码案例1.代码示例总结前言 关键内容:c11、多线程、共享数据、单例类 本章内容参考git…...

Embedding-based Retrieval in Facebook Search

facebook的社交网络检索与传统的搜索检索的差异是,除了考虑文本,还要考虑搜索者的背景。通用搜索主要考虑的是文本匹配,并没有涉及到个性化。像淘宝,youtube这些其实都是涉及到了用户自身行为的,除了搜索还有推荐&…...

xmu 离散数学 卢杨班作业详解【8-12章】

文章目录第八章 树23456810第九章46811第十章24567第十一章14571116第十二章131317第八章 树 2 (2) 设有k片树叶 2∗m2∗43∗3k2*m2*43*3k2∗m2∗43∗3k n23kn23kn23k mn−1mn-1mn−1 联立解得k9 T中有9片树叶 3 有三颗非同构的生成树 4 (1) c --abc e–abed f–dgf…...

Linux入门篇-权限管理

简介 用户管理也是和权限相关的知识点。权限的作用 权限对于普通文件和目录文件作用是不一样的 。[kioskfoundation0 ~]$ ls -l total 264 -rw-rw-r--. 2 kiosk kiosk 31943 May 29 2019 ClassPrep.txt -rw-rw-r--. 2 kiosk kiosk 7605 Jun 14 2019 ClassRHAPrep.txt -rw-rw-r…...

Linux(基于 Centos7) 常用操作

1.Linux 简介Linux 是一种 免费使用、自由传播的类 Unix 操作系统Linux操作系统内核,由林纳斯托瓦兹在1991年10月5日首次发布...Linux 是一套开源操作系统,它有稳定、消耗资源小、安全性高等特点大多数人都是直接使用 Linux 发行版(就是将 Li…...

Math类详解与Random类、三种随机数生成方式(java)

文章目录📖前言:🎀认识Random类🎀三种随机数生成方式🎀Math类的用途🎀Math类的方法📖前言: 本篇博客主要以介绍Math类的常用方法及认识Random类,及三种随机数生成方式 …...

Mac编译QT程序出现Undefined symbols for architecture x86_64

在Mac编写日志服务类, Logging_d.h内容如下 #pragma once #include <QLoggingCategory> Q_DECLARE_LOGGING_CATEGORY(hovering) Q_DECLARE_LOGGING_CATEGORY(creation) Q_DECLARE_LOGGING_CATEGORY(mouseevents) Q_DECLARE_LOGGING_CATEGORY(state) Q_DECLARE_LOGGING_C…...

蓝桥杯-李白打酒加强版

蓝桥杯-李白打酒加强版1、问题描述2、解题思路3、代码实现1、问题描述 话说大诗人李白, 一生好饮。幸好他从不开车。 一天, 他提着酒显, 从家里出来, 酒显中有酒 2 斗。他边走边唱: 无事街上走&#xff0c;提显去打酒。 逢店加一倍, 遇花喝一斗。 这一路上, 他一共遇到店 N 次…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...