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

软件企业公司网站模板代刷网站推广快速

软件企业公司网站模板,代刷网站推广快速,红安建设局网站,百度新闻排行榜文章目录前言环境准备Python实现主机扫描基于ARP协议基于ICMP协议普通版本多线程版本Python实现端口扫描扫描单个端口利用多线程扫描端口后记前言 本文主要讲几个利用Python实现网络扫描的小例子,可以结合多线程或多进程编程改进实例 我曾经走过多遥远的路 跨越过多…

文章目录

    • 前言
    • 环境准备
    • Python实现主机扫描
      • 基于ARP协议
      • 基于ICMP协议
        • 普通版本
        • 多线程版本
    • Python实现端口扫描
      • 扫描单个端口
      • 利用多线程扫描端口
    • 后记

前言

本文主要讲几个利用Python实现网络扫描的小例子,可以结合多线程或多进程编程改进实例

我曾经走过多遥远的路
跨越过多少海洋去看你

环境准备

  • Python3环境
  • scapy库
  • socket库
  • 能与物理机正常通信的虚拟机

由于本文实验目的为实现网络扫描,即探测网络中存活的主机,为了避免影响真实的网络环境,建议通过虚拟机进行实验,确保主机和虚拟机之间网络通信正常即可。
scapy库和socket库都可以通过pip命令直接安装:

pip install scapy

Python实现主机扫描

基于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(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip_range), iface=send_iface, timeout=2)# 打印响应结果
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(dst=ip_range)/ICMP()# 扫描IP地址范围段
ans, unans = sr(packet, iface=iface)# 输出扫描结果
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(dst=ip)/ICMP()res = sr1(pkt, timeout=1, iface=iface, verbose=0)if res:print(f"{ip} is up")def scan_ips(target_ips, iface, thread_count=10):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(target=scan, 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 VMnet8"scan_ips(ips, iface, thread_count=10)

执行该代码即可得到目标网段中存活的主机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(f"Port {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.171'start_port = 1end_port = 65536tpool=[]# 创建多个线程进行扫描for i in range(start_port-1, (end_port+1)//100):t = threading.Thread(target=scan_thread, args=(target_host, i*100+1, (i+1)*100))t.start()tpool.append(t)for t in tpool:t.join()

运行效果:
在这里插入图片描述

后记

以上就是本文的全部内容,若有疑问欢迎评论留言或与我联系~

http://www.yayakq.cn/news/976829/

相关文章:

  • 网站开发需要什么基础怎麽做网站
  • 花木公司网站源码河北品牌网站建设
  • 你学做网站学了多久移动网站二级域名m开头怎么做
  • 太原网站seo微网站是什么
  • 主流的网站开发技术产品图册设计公司
  • 网站改版iis301跳转如何做南通做外贸的公司网站
  • 公司管理制度整站优化seo排名点击
  • 医疗设计网站建设长沙本地烟
  • 网站建设几层结构万能小偷程序做网站
  • 文明网站建设培训体会龙岗区网站制作
  • 南宁企业网站排名优化什么是网站被黑
  • 自己建网站怎么弄无锡装饰网站建设排名
  • 网站运营维护工作 基本内容包括用腾讯云做淘宝客网站视频流程
  • 聊城商城网站建设wordpress用户登入界面
  • 网站模板织梦濮阳市城乡一体化示范区教师招聘
  • wordpress文章自定义字段seo网站诊断价格
  • 旅游景区网站建设策划书湖北城乡住房建设厅网站
  • 西安做网站的公司地址产品开发思路
  • 上海网站建设 排名淮南网络营销哪家强
  • 淘宝上开个网站建设猪八戒网站找做微信小程序的
  • 湛艺建设集团网站潍坊+网站建设
  • 电子商务网站开发参考文献青岛网站制作推广
  • 烟台网站设计公司推荐湖南省建设监理协会网站
  • 东莞做汽车有没有买票的网站制作展示型网站公司哪家好
  • 前端网站开发工具wordpress不小心改了网站地址
  • 建站技巧做国内学历公证的网站
  • 陕西专业网站建设价格石家庄网站制作福州
  • 中国做铁塔的公司网站三个年轻人做电影网站800万
  • 个人怎么做购物网站怎么在网上卖东西啊
  • 容桂网站建设网页制作的价格