有的小伙伴会很疑惑什么是端口扫描呢 , 端口扫描呢可以用来标记/找到目标主机或当前设备开启的服务/端口 , 可以理解为一个后台通信/入侵的通道 , 意思端口的开放就意味着开启了某个服务 , 有很多病毒也是通过入侵端口对主机进行攻击的 , 有时候人们随着服务的启动病毒会同时运行 , 所以定期进行端口扫描一是避免非必要的端口开启会遭到攻击 , 二是避免端口浪费 , 长期占用在后台通信的问题 。下面一起来看看这篇文章吧 。
文章插图
端口扫描其实就是发送探测报文 , 侦察当前的端口状态 , 并记录分析此端口的响应报文判断端口是否启用 , 通常分为UDP和TCP两种端口进行扫描 。举个例子:
from socket import *def connetScan(gToHost,gToPort): try: connetSkt=socket(AF_INET,SOCK_STREAM) #建立TCP连接 connetSkt.connect((gToHost,gToPort)) #如果无连接 , 则会出错 , 进入except connetSkt.send('ViolentPython\r\n'.encode()) #向端口发送数据 results=connetSkt.recv(100) #如果端口是开放的 , 则记录返回的消息 print('[+]%d/tcp open' %gToPort) print('[+] '+str(results)) connetSkt.close() except: print('[-]%d/tcp closed' %gToPort)def portScan(gToHost,gToPorts): try: gToIP=gethosttoname(gToHost) except: print('[-] Cannot resolve %s : Unknown host'%gToHost) return try: gToName=gethosttoaddr(gToIP) print('\n[+] Scan Results for:'+gToName[0]) except: print('\n[+] Scan Results for:' + gToIP) setdefulttimeout(1) for gToPort in gToPorts: print('Scanning port '+gToPort) connetScan(gToHost,int(gToPort))if __name__ == '__main__': gToHost='192.168.0.28' #扫描的目标主机ip gToPorts=['20','21',’82’,'81'] #需要扫描的端口号序列 portScan(gToHost,gToPorts)运行结果:
[+] Scan Results for:192.168.0.28Scanning port 20[-]20/tcp closedScanning port 21[-]21/tcp closed[+] b’SSh-2.0-xxxxxxxx\nProtocol mismatch.c\n’Scanning port 81[-]81/tcp closedScanning port 80[-]80/tcp closed上面的代码中有很多参数 , 不明白的可以复制到python环境中区试试 , 按住Ctrl+鼠标单击 , 选择某个参数会显示蓝色链接样式的下划线 , 点击即可进入相关源代码查看相关释义哦 。
推荐阅读
- Python怎么将文本以语音播放?Python文本转语音怎么实现
- 淘特获得直播权限是什么?如何做好淘特直播?
- 淘宝发放优惠券怎么赚钱?如何赚的更多?
- Fireworks动画制作教程 如何使用Fireworks制作字体遮罩动画?
- Fireworks文字效果制作教程 如何利用Fireworks制作马赛克文字效果?
- Fireworks文字制作教程 Fireworks如何制作迷彩文字效果?
- Fireworks光影效果制作教程 如何使用Fireworks制作光影效果?
- fireworks如何制作木质材料?fireworks如何制作木纹效果?
- Fireworks动画制作教程 Fireworks如何制作卷轴动画效果?
- 国家电网许继集团招进去的正式员工待遇如何,有国网编制吗