草庐IT

史上最全的子域名收集姿势

史上最全的子域名收集姿势1.被动子域名收集2.主动子域名收集3.2023-03附加DNS域传送存活性探测1.被动子域名收集信息泄露Github、Gitee等代码仓库中,可能有相关子域名的信息抓包分析获取,如一些静态资源的请求、一些APP或者小程序接口、邮件服务器等等很多网站有跨域策略文件crossdomain.xml、站点地图sitemap.xml和robots.txt等,其中也可能存在子域名的信息。搜索引擎&网络资产搜索引擎使用GoogleHacker语法:site:*.baidu.com使用FOFA搜索:domain="baidu.com"第三方DNS服务VirusTotalVirusTo

Python小姿势 - ## Python中的迭代器与生成器

Python中的迭代器与生成器在Python中,迭代是一个非常重要的概念,迭代器和生成器是迭代的两种最常见的形式。那么,迭代器与生成器有何不同呢?首先,我们先来了解一下迭代器。迭代器是一种对象,它可以记住遍历的位置,并在每次访问时返回下一个元素。迭代器只能往前不会后退。要创建一个迭代器,我们可以使用内置的iter()函数。举个例子:```pythonl=[1,2,3,4]it=iter(l)print(next(it))print(next(it))print(next(it))print(next(it))```结果如下:```python1234```迭代器有两个基本的方法,一个是iter

golang中的map并发读写问题: Golang 协程并发使用 Map 的正确姿势

#map不是并发安全的官方的faq里有说明,考虑到有性能损失,map没有设计成原子操作,在并发读写时会有问题。Mapaccessisunsafeonlywhenupdatesareoccurring.Aslongasallgoroutinesareonlyreading—lookingupelementsinthemap,includingiteratingthroughitusingaforrangeloop—andnotchangingthemapbyassigningtoelementsordoingdeletions,itissafeforthemtoaccessthemapconcu

不备份等于自杀?!学会SQL Server数据库备份的正确姿势!

大家好,我是晨希!在上一篇文章中,我们学习了如何创建数据库索引。今天,我将为大家介绍SQLServer数据库备份的概念和重要性,并提供一些常用的备份方法和示例。数据备份是确保数据安全和完整性的关键步骤,学会正确备份数据对于数据库管理员和开发人员来说非常重要。备份是数据库管理员日常工作的重要部分,它是一种保护数据免受损坏或丢失的方式。在SQLServer中,数据备份是非常重要的,因为它可以确保数据的可靠性和完整性。接下来我将分享一些关于SQLServer备份的知识。1.备份的类型SQLServer支持多种备份类型,包括完整备份、差异备份、增量备份和日志备份。我们可以根据需要选择适当的备份类型。2

Python小姿势 - 知识点:

知识点:Python的字符串格式化标题:Python字符串格式化实例解析顺便介绍一下我的另一篇专栏,《100天精通Python-快速入门到黑科技》专栏,是由CSDN内容合伙人丨全站排名Top4的硬核博主不吃西红柿倾力打造。基础知识篇以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架;黑科技应用篇以实战为主,包括办公效率小工具、爬虫、数据分析、机器学习、计算机视觉、自然语言处理、数据可视化等等,让你会用一段简单的Python程序,自动化解决工作和生活中的问题,甚至成为红客。🍅订阅福利:原价299,限时1折订阅专栏进入千人全栈VIP答疑群,作者优先解答

Python小姿势 - # 如何使用Python爬取网页数据

如何使用Python爬取网页数据今天我们来学习一下如何使用Python来爬取网页数据。首先,我们需要准备一个空白的文件,在文件中输入以下代码:```importrequestsurl='http://www.baidu.com'r=requests.get(url)print(r.text)```上面的代码中,我们首先导入了requests库,然后声明了一个url变量,并将其赋值为百度首页的地址。接着,我们使用requests.get()方法来发送一个GET请求,并将返回结果赋值给r变量。最后,我们使用print(r.text)来打印r变量中包含的网页数据。运行上面的代码,你会看到输出结果中包

Python小姿势 - Python中的类型检查

Python中的类型检查在Python中,类型检查是通过内置函数isinstance()来实现的。isinstance()函数用于判断一个对象是否是一个已知的类型,类似type()。isinstance()与type()区别:type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。语法isinstance(object,classinfo)参数object--实例对象。classinfo--可以是直接或间接类名、基本类型或者由基本类型组成的元组。返回值如果对象的类型与参数二的类型(或者其父类型)相同则返回True,否则返回False。实例以下实例展示了isin

Python小姿势 - import random

importrandomtopic=random.choice(['pythondecorator','pythongenerator','pythonyield','pythonlistcomprehension'])print('Howtouse{}inPython?'.format(topic))Ifyou'reaPythonprogrammer,thenyou'veprobablyalreadyusedfunctionslikelen(),print(),orrange().Butdidyouknowthattheseareactuallyjust"wrapper"functionst

Python小姿势 - #### Python技术博客:Python多线程编程

Python技术博客:Python多线程编程你好,这里是自媒体技术博主Aurora,今天我想分享一下Python多线程编程。首先,什么是多线程编程?多线程编程是一种让多个线程同时执行的编程方式,它可以让程序的执行更加高效。如果我们要编写一个多线程程序,首先要导入threading模块,然后我们创建一个Thread类的实例,传入一个函数和函数的参数,然后调用start()方法启动线程。下面是一个简单的多线程程序的例子:```pythonimportthreadingimporttimedefprint_time(thread_name,delay):count=0whilecounttry:th

Python小姿势 - Python的多线程编程

Python的多线程编程Python的多线程编程提供了一个非常简单的方法来让一个Python程序同时运行多个任务。这个方法通过创建新的线程来实现,线程可以被视为一个单独的执行流程。为了创建一个新线程,我们需要使用Python的_thread模块中的start_new_thread()函数。它需要两个参数:第一个参数是一个函数,第二个参数是一个元组,元组中的参数将传递给函数。在下面的例子中,我们将创建一个新线程来调用我们的函数print_time()。它将打印当前时间,然后睡眠2秒钟。import_threadimporttime为线程定义一个函数defprint_time(threadName