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

深圳市住房和建设局网站住房上海网站建设 虹口

深圳市住房和建设局网站住房,上海网站建设 虹口,wordpress文章超链接,大数据营销的弊端文章目录前言环境准备Python实现主机扫描基于ARP协议基于ICMP协议普通版本多线程版本Python实现端口扫描扫描单个端口利用多线程扫描端口后记前言 本文主要讲几个利用Python实现网络扫描的小例子#xff0c;可以结合多线程或多进程编程改进实例 我曾经走过多遥远的路 跨越过多… 文章目录前言环境准备Python实现主机扫描基于ARP协议基于ICMP协议普通版本多线程版本Python实现端口扫描扫描单个端口利用多线程扫描端口后记前言 本文主要讲几个利用Python实现网络扫描的小例子可以结合多线程或多进程编程改进实例 我曾经走过多遥远的路 跨越过多少海洋去看你 环境准备 Python3环境scapy库socket库能与物理机正常通信的虚拟机 由于本文实验目的为实现网络扫描即探测网络中存活的主机为了避免影响真实的网络环境建议通过虚拟机进行实验确保主机和虚拟机之间网络通信正常即可。 scapy库和socket库都可以通过pip命令直接安装 pip install scapyPython实现主机扫描 基于ARP协议 ARP协议这里不做过多讲解大家自行百度即可扫描目标主机的工作原理大致如下 首先向目标主机发送一个ARP Request请求若目标主机回应了ARP Reply则表明目标主机可能存活若目标主机没有回应则表明目标主机可能处于非活跃状态 需要注意的是这里我们可以直接发送MAC地址全为F的广播报文而不需要单独给每个IP主机发送数据包这样能够极大的优化系统运行时间 实验代码 注意由于我这里虚拟机在VMnet8虚拟网卡上因此我们发送数据包的时候应该选择对应的网卡进行实验windows下可以通过ipconfig /all命令查看对应网卡的名称和属性 from scapy.all import *# 设置发送数据包的网卡 send_iface VMware Virtual Ethernet Adapter for VMnet8# 扫描IP地址范围 ip_range 10.0.0.0/24# 发送ARP请求并获取响应 ans, unans srp(Ether(dstff:ff:ff:ff:ff:ff)/ARP(pdstip_range), ifacesend_iface, timeout2)# 打印响应结果 for snd, rcv in ans:print(f{rcv.psrc} is up.) 代码执行结果 其中的10.0.0.171就是我开启的虚拟机可以看到代码成功执行并扫描到了目标主机的IP地址 基于ICMP协议 基于ICMP协议的主机扫描原理类似这里我们将需要对每个主机发送ARP请求报文 普通版本 常规书写的代码如下 from scapy.all import *# 输入需要扫描的IP地址范围 ip_range 10.0.0.0/24# 输入需要发送数据包的网卡名 iface VMware Virtual Ethernet Adapter for VMnet8# 定义发送的ICMP数据包 packet IP(dstip_range)/ICMP()# 扫描IP地址范围段 ans, unans sr(packet, ifaceiface)# 输出扫描结果 print(以下IP地址可用) for s, r in ans:print(r.sprintf(%IP.src%))由于遍历每个IP再发送ICMP请求包的方式速度较慢在网络条件允许的情况下可以用多线程的方式改写上述代码 多线程版本 import threading from scapy.all import * import logging #关闭warning警告信息 logging.getLogger(scapy.runtime).setLevel(logging.ERROR)def scan(ip_list, iface):for ip in ip_list:pkt IP(dstip)/ICMP()res sr1(pkt, timeout1, ifaceiface, verbose0)if res:print(f{ip} is up)def scan_ips(target_ips, iface, thread_count10):ip_lists [[] for _ in range(thread_count)]for i, ip in enumerate(target_ips):ip_lists[i % thread_count].append(ip)threads []for ip_list in ip_lists:thread threading.Thread(targetscan, args(ip_list, iface))threads.append(thread)thread.start()for thread in threads:thread.join()if __name__ __main__:ips [10.0.0.{}.format(i) for i in range(1, 201)]iface VMware Virtual Ethernet Adapter for VMnet8scan_ips(ips, iface, thread_count10) 执行该代码即可得到目标网段中存活的主机IP Python实现端口扫描 扫描单个端口 这里主要演示利用socket库进行端口扫描这里利用虚拟机的22端口为例进行实验 from socket import *def portScanner(host, port):try:s socket(AF_INET, SOCK_STREAM)s.connect((host,port))print([*],host,port,open)s.close()except:print([-],host,port,close)portScanner(10.0.0.171,22)利用多线程扫描端口 利用多线程扫描端口的实例如下 import socket import threading# 定义扫描函数 def scan_port(ip, port):try:# 创建套接字sock socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.settimeout(1)# 连接目标主机的指定端口result sock.connect_ex((ip, port))if result 0:print(fPort {port} is open on {ip})# 关闭套接字sock.close()except Exception as e:print(e)pass# 定义多线程扫描函数 def scan_thread(ip, start_port, end_port):for port in range(start_port, end_port):scan_port(ip, port)# 主函数 if __name__ __main__:# 设置要扫描的主机和端口范围target_host 10.0.0.171start_port 1end_port 65536tpool[]# 创建多个线程进行扫描for i in range(start_port-1, (end_port1)//100):t threading.Thread(targetscan_thread, args(target_host, i*1001, (i1)*100))t.start()tpool.append(t)for t in tpool:t.join() 运行效果 后记 以上就是本文的全部内容若有疑问欢迎评论留言或与我联系~
http://www.dnsts.com.cn/news/105031.html

相关文章:

  • 建设工程项目在哪个网站查询域名哪里注册
  • 网站结构的规划电子商务网站建设与维护李建忠
  • 扁平化 公司网站哪些网站可以做移动端模板
  • 福州做网站的公司有哪些小程序拉新项目
  • 网站关键词重要性门户网站建站方案
  • 网站制作公司属于广告发布者吗做川菜的网站
  • 网站后台ftp在哪文字生成图片在线使用
  • c2c网站管理系统品牌网球
  • ajax瀑布流网站模板天津住房和城乡建设厅官方网站
  • 佛山网站推广怎么做仿土巴兔网站建设
  • 中国建设银行网站首页 定投社群运营
  • 用vs做网页是怎么创建网站的互联网站备案登记表
  • 网站的发布方案有哪些网络运营商是什么意思
  • 遵义网站制作一般多少钱亿动广告公司
  • 网站怎么收费的嘉兴网站制作哪家专业
  • 寿宁县建设局网站中山网站开发
  • 网站怎么做实名认证网络营销方案的制定思路
  • 富民县住房和城乡规划建设局网站wordpress c7v5主题
  • 浙江理工大学网站设计与建设wordpress 瀑布
  • 佛山茶叶网站建设企业网站平台如何做网络推广
  • 专业的建站公司服务高邮网站建设
  • 做ic比较有名的网站广东手机网站建设多少钱
  • 建设一个外贸网站多少钱呢有服务器可以做网站吗
  • 高端网站建站centos做网站服务器
  • 晚上正能量网站大全西安给大学做网站公司
  • 访问数据库的网站开发语言网页设计制作教程
  • 航空总医院医院网站建设招标网站店铺设计餐饮
  • 安徽省建设厅官方网站各处室延边app网站开发
  • 个人网站怎么做支付网站建设 商城
  • 销售网站设计商务推广