python实现简单信息收集

python实现简单信息收集

import whois
import socket
import sys


def Query(domain):
	ip = socket.gethostbyname(str(domain)) # 获取IP地址
	data = whois.whois(domain)
	print ("[+] This server IP is : "+ip)
	print("Basic information: ")
	print (data)

def mainMod(name, domain):
	print("\n\ # 好看的字符
		   ******\n\
		 *********\n\
		**       **\n\
		**       **\n\
		**       **\n\
		**       **\n\
		**       **\n\
		  *******\n\
		   *****  ")
	print ('[+] This is '+ name +' Mod!')
	print ('[+] please wait...')
	Query(domain)

if __name__ == '__main__':
	if len(sys.argv) == 2:
		mainMod(sys.argv[0], sys.argv[1])

基本原理是调用whois库和socker库进行数据搜集。不是特别全面。第一个参数给域名就行。

本文转载于网络 如有侵权请联系删除

相关文章

  • Java 集合框架(3)---- List 相关类解析(下)

    前言在上篇文章中,我们主要看了AbstractCollection抽象类List接口下的AbstractList抽象类,介绍了他们实现了Collection中一些抽象方法。在这篇文章中,我们来看一下List接口下的一些具体类,也就是我们平常经常使用的一些类:ArrayList这个类算的上是我们平常开发中最常用的类之一了。翻译过来意思是数组列表,不过比起这个名称,我更喜欢叫它动态数组(受C++STL模板的vector模板类的影响)。不过不管怎么叫它,它的功能不会遍,我们经常会用它作为动态管理数组元素的集合类。 我们先来看一下它的类继承图:我们可以看到,ArrayList类继承于AbstractList抽象类,这个抽象类我们在上篇文章中已经仔细介绍过了,它继承于AbstractCollection抽象类,实现了List接口,并且实现了一些AbstractCollection接口没有实现的抽象方法(size()、iterator()等方法)。官方文档对它的描述是:该类提供了List接口的骨架实现,以最大限度地减少实现由“随机访问”数据存储(如数组)所支持的接口所需的工作量。对于顺序访问数据(

  • 微信快速开发框架(五)-- 利用快速开发框架,快速搭建微信浏览博客园首页文章

    这几天接连发布了《快速开发微信公众平台框架---简介》和《体验微信公众平台快速开发框架》几篇关于微信平台的文章,不过反响一般,可能需求不是很多吧。闲来无事,还是继续改造一下这个框架。今天更新了框架代码,听取了@RMay的建议,加入了一个信息中间件,用来处理xelement,避免了重复解析,所以所有接口都更改了下。此次更新如下:1、增加信息中间件MiddleMessage2、更改了接口参数类型,把原来的XElement都改成了MiddleMessage3、删除了Demo项目,以后都用WebDemo进行演示。所有代码都已经更新到我的Gibhub上介绍了更新内容,下面继续打造我们的Demo项目。之前我们写的,都是返回文本信息,今天上午,我加入了一个CnblogsArticleNewsMessageHandler,主要是返回一个ResponseNewsMessage(图文信息),只要发消息:博客园文章,就能获取在首页前5的文章列表,但为了避免给博客园造成鸭梨,我把信息缓存了下,10分钟更新一次。这次主要采用了webclient+正则的方式,采集的方式无所谓,大家都可以自由发挥。先看下Cnblo

  • 养良好C语言编程风格,编优质C语言代码,这才是C语言的开始

    个人c语言编程风格总结总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的。首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的。一件事情,做成和做好中间可能隔了十万八千里。同样的,代码的质量也极大程度上反映了编程者的水平高低。为了让大家从学习的开始就养成良好的编程习惯,创作出优质的代码,实验室编辑这个文档,作为大家编程的参考,同时也是对以后编程风格的硬性规定。对于一个团队来讲,制定统一的编程规范,好处是显而易见的。通常一个项目是由多个成员共同完成,在项目中,经常互相调用组内成员的代码。如果两个人的编程习惯和风格差异显著,那么将会浪费大量时间在读懂代码上。相反,一致而良好的编程规范,会让合作开发变得轻松而高效。众所周知,C语言是面向过程的语言。也就是说,程序员要对程序的每一步有精准的把握,知道每一条程序语句的执行内容及其结果。因而,代码的可读性就显得尤为重要。这里的可读,不仅仅是对自己可读,也要对其他人可读。一段只有自己能读懂的代码,可以说价值很低,而且这样的代码随着时间的推移往往自己也读不懂。而可读性强的代码,不仅方便移植与交

  • WCF初探-20:WCF错误协定

    WCF错误协定概述   在所有托管应用程序中,处理错误由Exception对象表示。在基于SOAP的应用程序(如WCF应用程序)中,服务方法使用SOAP错误消息来传递处理错误信息。SOAP错误是包括在服务操作元数据中的消息类型,因此会创建一个错误协定,客户端可使用该协定来使操作更加可靠或更具交互性。此外,由于SOAP错误在客户端以XML格式表示,这是一种任何SOAP平台上的客户端都可以使用的具有极好的互操作性的类型系统,可增加WCF应用程序的适用范围。 由于WCF应用程序在两种类型的错误系统下都可运行,因此发送到客户端的任何托管异常信息都必须在服务上从异常转换为SOAP错误,并在WCF客户端中从SOAP错误转换为错误异常。对于双工客户端,客户端协定还可以将SOAP错误发送回服务。在任一种情况下,您都可以使用默认的服务异常行为,或者可以显式控制是否(以及如何)将异常映射到错误消息。 可以发送两种类型的SOAP错误:已声明的和未声明的。已声明的SOAP错误是指其中的某个操作具有System.ServiceModel.FaultContractAttribute属性(用于指定自定

  • 局域网特点

    局域网LAN是指在较小的地理范围内,将有限的通信设备互联起来的计算机通信网络。 从功能的角度来看,局域网具有以下几个特点:①共享传输信道。在局域网中,多个系统连接到一个共享的通信媒体上。②地理范围有限,用户个数有限。通常局域网仅为一个单位服务,只在一个相对独立的局部范围内连网,如一座楼或集中的建筑群内。一般来说,局域网的覆盖范围约为10m~10km内或更大一些。③传输速率高。局域网的数据传输速率一般为1~100Mbps,能支持计算机之间的高速通信,所以时延较低。④误码率低。因近距离传输,所以误码率很低,一般在10-8~10-11之间。⑤多采用分布式控制和广播式通信。在局域网中各站是平等关系而不是主从关系,可以进行广播或组播。从网络的体系结构和传输控制规程来看,局域网也有自己的特点:①低层协议简单。在局域网中,由于距离短、时延小、成本低、传输速率高、可靠性高,因此信道利用率已不是人们考虑的主要因素,所以低层协议较简单。②不单独设立网络层。局域网的拓扑结构多采用总线型、环型和星型等共享信道,网内一般不需要中间转接,流量控制和路由选择功能大为简化,通常在局域网不单独设立网络层。因此,局域网的

  • C#之委托与事件

    委托与事件   废话一堆:网上关于委托、事件的文章有很多,一千个哈姆雷特就有一千个莎士比亚,以下内容均是本人个人见解。 1.委托 1.1委托的使用        这一小章来学习一下怎么简单的使用委托,了解一些基本的知识。        这里先看一下其他所要用到的类的信息       ///<summary>        ///函数用例        ///</summary>        publicclassManyMethodClass        {  &nb

  • TypeScript —— 枚举类型 enum 的红与黑

    TypeScript设计的初衷是JavaScript+Types,所有TypeScript的特性不改变运行时的行为 反过来说,如果在TS代码中去掉静态类型,应该得到一份完整有效的JS代码 这样的好处在于,我们可以通过ESbuild而不是tsc完成我们的TS代码到JS代码的转换 但实际上TypeScript中有一个特殊类型破坏了这种构想,它就是Enum     一、什么是Enum 在TypeScript中可以通过enum来定义一组常量,并将这些常量放到同一个对象中管理: enumLanguage{ ZH_CN='zh_CN', ZH_HK='zh_HK', ZH_TW='zh_TW', EN_US='en_US', EN_GB='en_GB', }复制 和type、interface类似,enum可以直接作为静态类型使用 functiongetLocals(lang:Language){ return`hello${lang}`; }复制 但在调用这个函数的时候,传入的参数不能是enum的值,而应该是enum的引用   从这里就会发现enum的特性

  • 初尝DirectUI

    作者博客:http://blog.csdn.net/wangchyz 源码地址:http://code.google.com/p/duilib/source/checkout 团队转向LOMOX介绍:http://www.softwareace.cn/?p=538

  • 又错三手,橡胶终于爆仓

    640开空,840止损单强平。840开空940止损强平。900开多685准sun强平。 上下跳动的震荡市厂,输钱全部输在了止损上,需要的是止盈,止损必被破。 三单累计损失巨大,爆仓结束,无法开单。

  • 解决RuntimeWarning: DateTimeField User.last_login received a naive datetime

    把代码中设置的"今天" 改为timezone.now() 例子: fromdatetimeimportdate fromdjango.utilsimporttimezone now_date=date.today() 改为now_date=timzone.now()  

  • Python网络爬虫-青年大学习

    前提 由于每周都要查看是否所有人都完成了本周的大学习,一个一个查是比较麻烦的,收集截图也是另一种方法,因此诞生了下面的爬虫程序 整体思路 1、请求网页,获取Cookie(会在整个过程中使用),获取_jfinal_token url='http://mp.vol.jxmfkj.com/pub/login?returnUrl=/' response=requests.get(url) dict=response.cookies.get_dict() start=response.text.find("value='") end=response.text.find("'",start+7) str=response.text[start+7:end] _jfinal_token=str session=dict["JSESSIONID"]复制 2、模拟登录请求初步判断为使得Cookie生效 2.1、加密后的密码如何查看 1)首先打开登陆页面 2)打开F12中的网络 3)登录 4)在F12中找到如下包    然后点击在右边的载荷中就可以看到 2.2代码: de

  • 计算机网络(10)-----TCP的拥塞控制

    TCP的拥塞控制 拥塞(congestion)   在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。 拥塞控制   拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。      如图所示,横坐标是提供的负载(offeredload),代表单位时间内输入给网络的分组数目。纵坐标是吞吐量(throughput),代表单位时间内从网络输出的分组数目。   理想状态:在吞吐量饱和之前,网络吞吐量应等于提供的负载,故吞吐量曲线是45度的斜线。但当提供的负载超过某一限度时,由于网络资源受限,吞吐量不再增长而保持为水平线,即吞吐量达到饱和。   实际状态:随着提供的负载的增大,网络吞吐量的增大速率逐渐减小。也就是说,在网络吞吐量还未达到饱和时,就已经有一部分的输入分组被丢弃了。当网络的吞吐量明显的小于理想的吞吐量时,网络就进入了轻度拥塞的状态。当提供的负载达到某一数值时,网络的吞吐量反而随提供的负载的增大而下降,这时网络就进入了拥塞状态。当提供的负载继续增大到某一数值时,网络的吞吐量就下降到零,网络无法工作,这就是所谓的死锁(de

  • 全方位理解Android权限之底层实现概览

    0000 这个阶段搞了很多和Android文件权限相关的问题,虽然一知半解,但也算是对Android权限机制有一些自己的理解。遂将这些内容整理出来。因为权限这部分涉及到的内容很多,故将知识分为几块内容分别去整理。目前能想到的概要如下: Android权限底层实现原理概述 Androiduid,gid的生成与权限机制的联系 AndroidpackageManagerService与权限的千丝万缕(源码解析) Android从recovery模式下的OTA升级理解权限 AndroidROOT原理 Android签名 Android权限大杀器—Selinux的策略 这是第一篇。2,3,4已经有一些草稿了,但离发出来还有一些时间。5,6,7还在规划中。可以关注新弄的公众号softard,后面比较完善的文章都会在这个号上及时更新。 这里再推荐一本书,这也是查资料找到的一本宝贝,非常牛逼。 0001Overview LinuxFilePermission 众所周知,Android的内核是linux的内核。对于linux来说,系统的一切都是文件。同时,linux为文件系统设计了一套完善的权限机制

  • SpringMVC 传递参数过程中 RquestBody,RequestParam 区别

    最近面试遇到问springmvc传递参数相关的问题,在网上看到一篇解释比较详细的博客,原文链接:https://blog.csdn.net/LostSh/article/details/68923874。 这里copy记录一下,方便自己以后回顾。 在SpringMVC中我们可以选择数种接受JSON的方式,在说SpringMVC如何接受JSON之前,我们先聊聊什么是JSON。具体的定义我也不赘述了,在JavaScript中我们经常这样定义JSON 对象。 varjsonObject={"username":"admin","password":123} 这种形式的我们叫它JSON对象,同时还有一个概念叫做JSON字符串,字符串呢,顾名思义,是由’‘或者”“包裹起来的一个整体,我们称之为字符串。我们知道字符串是可以直接输出的,而对象不能直接输出。所以在JavaScript中,我们可以 //定义一个对象jsonObjectvarjsonObject={"username":"admin","password":123};alert(jsonObject); 此时,会显示[objec

  • 5-15 笔记 jtopo使用

    Jtopo的核心对象有6个,分别是Stage(舞台对象),Scene(场景对象),Node(节点对象),Link(连线对象),Container(容器对象),Effect.Animate(动画效果) 1Stage: 1.1Mode属性: normal[默认] 可以点击选中单个节点(按住Ctrl可以选中多个),点中空白处可以拖拽整个画面 drag 该模式下不可以选择节点,只能拖拽整个画面 select  可以框选多个节点、可以点击单个节点 edit 在默认基础上增加了:选中节点时可以通过6个控制点来调整节点的宽、高   1.2add/remove(scene)函数: 将一个场景加入到/移除出舞台效果 1.3setCenter(x,y)函数: 设置舞台的中心坐标点(舞台平移)   2Scene: 2.1Mode属性和Stage属性一致 2.2alpha属性:场景的透明度 2.3show()/hide()函数: 表示场景的显示/隐藏  2.4add/remove(element)函数:  添加对象到当前场景/移除场景中

  • spring boot application 配置详情

    #=================================================================== #COMMONSPRINGBOOTPROPERTIES # #Thissamplefileisprovidedasaguideline.DoNOTcopyitinits #entiretytoyourownapplication.^^^ #=================================================================== #---------------------------------------- #COREPROPERTIES #---------------------------------------- debug=false#Enabledebuglogs. trace=false#Enabletracelogs. #LOGGING logging.config=#Locationoftheloggingconfigurationfile.Forinstance,`classp

  • ant编译tomcat-web项目

    环境依赖说明:jdk 不同版本的ant需匹配不同版本的jdk 1.9.*版本-运行时至少需要Java5 1.10.*版本-运行时至少需要Java8 官网:http://ant.apache.org/ 下载地址:https://ant.apache.org/bindownload.cgi 安装 wgethttps://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.8-bin.tar.gz tarzxvfapache-ant-1.10.8-bin.tar.gz-C/usr/local/ ln-s/usr/local/apache-ant-1.10.8/bin/ant/usr/sbin/ 复制 添加ant配置文件 在项目目录中添加ant脚本文件 vimbuild.xml <?xmlversion="1.0"encoding="UTF-8"?> <projectbasedir="."name="web-test"default="buildwar"> <!--配置环境变量-->

  • 自定义struts实现

    一:struts2运行机制:   Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件   1)客户端在浏览器中输入一个url地址   2)这个url请求通过http协议发送给tomcat。   3)tomcat根据url找到对应项目里面的web.xml文件。   4)在web.xml里面会发现有struts2的配置。   5)然后会找到struts2对应的struts.xml配置文件。   6)根据url解析struts.xml配置文件就会找到对应的class。   7)调用完class返回一个字String,根据struts.xml返回到对应的jsp。   二:struts2运行原理   上图来源于Struts2官方站点,是Struts2的整体结构。   一个请求在Struts2框架中的处理大概分为以下几个步骤:   1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求。   2) 这个请求经过一系列的过滤器(Filter)。

  • 关于扁平化数组的吐槽

    一个部门JSON数据中,属性名是部门id,属性值是个部门成员id数组集合,现在要把有部门的成员id都提取到一个数组集合中。 constdeps={'采购部':[1,2,3],'人事部':[5,8,12],'行政部':[5,14,79],'运输部':[3,64,105],}letmember=[];for(letitemindeps){constvalue=deps[item];if(Array.isArray(value)){member=[...member,...value]}}member=[...newSet(member)] 吐槽 获取对象的全部属性值还要遍历吗?Object.values忘记了吗?还有涉及到数组的扁平化处理,为啥不用ES6提供的flat方法呢,还好这次的数组的深度最多只到2维,还要是遇到4维、5维深度的数组,是不是得循环嵌套循环来扁平化? constdeps={ '采购部':[1,2,3], '人事部':[5,8,12], '行政部':[5,14,79], '运输部':[3,64,105], } letmember=Object.values(deps)

  • 第二次博客作业: 函数+进制转换器v1.0beta

    一、博客内容 1.运行截图 正常运行的截图(其他情况与此类似,就不一一贴出了): 存在输入错误时的截图(其他格式不规范或者输入正常的情况与此类似,也不一一贴出了): 2.额外扩展的功能 十六进制与其他三种进制的互相转换: 当你要输入一个二进制(或者其他进制)的数时,你输入的却不是该进制的数或者输入错误字符,会得到一个错误提示并让你重新输入,运行情况如上面第二张图; 当你要选择需要转换的数字是几进制时,如1.二进制2.八进制3.十进制4.十六进制,若输入除了1~4以外的数字就会有一个错误提示并让你重新选择,运行结果如上面第二张图; 当你要选择想把数字转换成几进制时,如二进制转其他进制1.八进制2.十进制3.十六进制,若输入除了1~3以外的数字就会有一个错误提示并让你重新选择,效果如上面第二张图; 3.介绍函数 所有函数的声明: 二进制转其他进制的函数: voiderjinzhi(void); voiderjinzhi(void){ charnumber[128]; intt2,i,j,length,sum=0; input: printf("请输入想要转换的数:\n")

  • 第二章 python之计算机基础

    @python基础 零基础就是个幌子,因为零基础什么都干不了。 如果零基础随随便便就把自动化做起来,那自动化测试就不值钱了;因为这种简单的事情,谁都可以做到。 本课程从零基础出发,补足基础后,不仅仅学到了自动化测试,还能学会python这门语言; 第一节 计算机基础 计算机分为软件和硬件两部分。 硬件主要由:运算器,控制器,内存,输入设备和输出设备组成。 软件分为系统软件和应用软件; 软件主要功能是处理文件,图片,数据以及各种计算任务等等。 软件是由计算机编程语言编写而成的,专门为人类意愿工作。 编程语言的发展:机器语言→汇编语言→高级语言。(机器语言和会汇编语言不易被人类理解,学习汇编的成本非常高,所以我们学习的是高级语言) 我们学习的就是高级语言,高级语言包含了(C语言,java,python等等……) 高级语言细分为编译类和解释类,python属于解释类语言。 编译类语言有C,JAVA,C++等等 解释类语言有,python等。 我们学习的就是解释类的python语言,它的优势有:软件质量好,开发效率高,可移植性好,库支持丰富,组件集成。它的劣势:运行效率低(运行效率低

相关推荐

推荐阅读