📅  最后修改于: 2023-12-03 14:51:20.170000             🧑  作者: Mango
本文介绍了如何在Python中使用套接字(Socket)编写一个简单的端口扫描器。使用这个端口扫描器,你可以快速检查一个目标主机的开放端口,以帮助你评估网络安全性或发现可能存在的漏洞。
端口扫描时常用的网络安全技术之一。它通过尝试连接到目标主机的不同端口来确定哪些端口开放并监听连接。通过扫描目标主机的开放端口,可以帮助我们发现可能存在的漏洞或未安全配置的服务。
Python是一种功能强大且流行的编程语言,提供了socket库来操作套接字。我们可以使用Python中的套接字来实现一个简单的端口扫描器。
以下是一个使用Python编写的简单端口扫描器的实现步骤。
导入必要的库:
import socket
定义主机和要扫描的端口范围:
target_host = "example.com"
port_range = range(1, 100)
实现端口扫描函数:
def port_scanner(target_host, port_range):
for port in port_range:
try:
# 创建套接字并连接到目标主机的指定端口
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1) # 设置超时时间为1秒
result = sock.connect_ex((target_host, port))
if result == 0:
print(f"Port {port} is open")
sock.close()
except socket.error:
print(f"Failed to connect to port {port}")
调用端口扫描函数:
port_scanner(target_host, port_range)
下面是一个使用示例:
import socket
def port_scanner(target_host, port_range):
for port in port_range:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target_host, port))
if result == 0:
print(f"Port {port} is open")
sock.close()
except socket.error:
print(f"Failed to connect to port {port}")
target_host = "example.com"
port_range = range(1, 100)
port_scanner(target_host, port_range)
以上代码将扫描example.com
主机上的端口1至100,打印出开放的端口信息。
请根据实际需求和合法合规原则使用端口扫描工具。