用python写一段代码,功能类似nmap的端口扫描
时间: 2024-10-18 08:18:39 浏览: 16
python nmap实现端口扫描器教程
Python有许多库可以用来进行网络端口扫描,其中最常见的是`socket`模块和第三方库`nmap-python`。下面是一个简单版本的命令行脚本,它使用`socket`模块来扫描指定的目标主机和端口范围:
```python
import socket
def portscan(ip, start_port=1, end_port=1024):
for port in range(start_port, end_port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5) # 设置超时时间
try:
result = sock.connect_ex((ip, port))
if result == 0: # 端口开放
print(f"Port {port} is open on {ip}")
else:
print(f"Port {port} is closed on {ip}")
sock.close()
except (ConnectionRefusedError, TimeoutError):
pass # 忽略连接拒绝或超时情况
# 使用示例
ip_to_scan = "192.168.1.1" # 替换为你想扫描的目标IP
portscan(ip_to_scan)
```
这个脚本会尝试连接目标主机的每个指定端口,并打印出结果。请注意,这只是一个基础版的扫描,实际的nmap工具提供了更强大的功能,包括协议识别、操作系统探测等。
阅读全文