实现端口扫描Python代码
时间: 2023-08-31 15:30:12 浏览: 143
### 回答1:
你可以使用Python的socket模块来实现端口扫描,具体步骤如下:1. 创建一个socket对象;2. 用一个循环枚举端口从1到65535;3. 在每个端口上尝试连接;4. 如果连接成功,则打印出端口号。
### 回答2:
端口扫描是一种通过向目标主机的不同端口发送请求,来确定哪些端口处于开放状态的方法。下面是一个简单的实现端口扫描的Python代码:
```python
import socket
def scan_ports(target_ip, start_port, end_port):
open_ports = [] # 存储开放的端口
# 遍历指定范围的端口
for port in range(start_port, end_port + 1):
# 创建一个套接字对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1) # 设置1秒钟的超时时间
# 尝试连接端口,如果连接成功则说明端口开放
result = sock.connect_ex((target_ip, port))
if result == 0:
open_ports.append(port)
sock.close()
return open_ports
if __name__ == "__main__":
target_ip = "127.0.0.1" # 目标主机IP地址
start_port = 1 # 起始端口号
end_port = 1000 # 终止端口号
open_ports = scan_ports(target_ip, start_port, end_port)
# 输出开放的端口
if len(open_ports) > 0:
print("开放的端口有:")
for port in open_ports:
print(port)
else:
print("没有开放的端口")
```
使用以上代码,我们可以通过设置目标主机IP地址、起始端口号和终止端口号来进行端口扫描。代码首先创建一个连接的套接字对象,然后遍历指定范围的端口,逐个尝试连接端口,如果连接成功则说明端口是开放的,将其添加到开放端口列表中。最后输出开放的端口。
阅读全文