用python编写一个端口扫描器(类似nmap的简易版本)。给定目的ip地址,可以扫描目的IP地址在哪个端口上可以接受tcp连接和udp连接。
时间: 2024-02-17 12:00:45 浏览: 201
好的,以下是使用Python编写的简易版本端口扫描器:
```python
import socket
def scan_port(ip, port, protocol):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM if protocol == "tcp" else socket.SOCK_DGRAM)
s.settimeout(1)
try:
s.connect((ip, port))
print(f"Port {port} is open")
except:
print(f"Port {port} is closed")
s.close()
if __name__ == '__main__':
target_ip = input("Enter target IP address: ")
port_range = input("Enter port range (e.g. 1-100): ")
protocol = input("Enter protocol (tcp/udp): ")
start_port, end_port = map(int, port_range.split("-"))
for port in range(start_port, end_port+1):
scan_port(target_ip, port, protocol)
```
这个程序会提示用户输入目标IP地址、端口范围和协议类型,然后扫描指定IP地址上的所有端口,输出哪些端口是开放的。可以通过输入`1-65535`扫描所有端口。
阅读全文