python实现端口扫描low版本
本帖最后由 wushaominkk 于 2019-6-18 21:36 编辑一次偶然的机会:写一个脚本 扫描主机端口 low
代码如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import socket
# 端口扫描py脚本<主机>,开始端口至末尾端口
class scan():
#定义打开、关闭的端口list
host_port_open = list()
host_port_close = list()
def __init__(self, host_str, start_port, end_port):
self.host_str = host_str
self.start_port = int(start_port)
self.end_port = int(end_port)
def main_head(self):
## 遍历 用户传入的参数 起止端口
for tmp in range(self.start_port, self.end_port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# 如果检测端口打开,则执行
s.connect((self.host_str, tmp))
s.shutdown(2)
print('%s:%d is open ' % (self.host_str, tmp))
#host_port_open.append("%s %s open" % (self.host_str, tmp))
#print("list %s"%host_port_open)
except:
# 如果检测端口关闭,则执行
print('%s:%d is close ' % (self.host_str, tmp))
#host_port_close.append(" %s %s close" % (self.host_str, tmp))
#print("list %s" %host_port_close)
def main():
# 获取用户输入的字符长度
if len(sys.argv) == 4:
## 捕获异常
try:
host_ip = sys.argv
start_port = int(sys.argv)
end_port = int(sys.argv)
except Exception as ret:
print("端口输入错误。。。。。")
return
else:
print("请按照以下方式运行:")
print("python3 xxxx.py host_ip start_port end_port")
return
# 打印传入的参数
print(host_ip, start_port, end_port)
## 执行 scan 类,传入参数
scaning = scan(host_ip, start_port, end_port)
# 执行scan类 main_head 方法
scaning.main_head()
if __name__ == "__main__":
main()
使用方法python xxx.py ip 起端口 结尾端口
例如: python 脚本名称.py 192.168.1.1 20 80 扫描主机192.168.1.1 20-80端口
闲的无聊,勿喷! 学习了谢谢楼主 不错哦,感谢分享!{:1_899:} 哈哈提示那里 你可以用optparse模块来写 可以再加上线程池来加快速度。
上次自己写也过一个类似的,
还测试连接上后,获取数据来判断端口情况。
还要设置timeout等。
页:
[1]