Python端口扫描如何编写
时间: 2023-11-05 21:12:37 浏览: 117
Python端口扫描可以使用socket模块实现。下面是一个简单的Python端口扫描脚本示例:
```python
import socket
# 定义要扫描的主机IP和端口范围
host = '127.0.0.1'
port_range = range(1, 1025)
# 循环扫描端口
for port in port_range:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置连接超时时间为1秒钟
s.settimeout(1)
try:
# 尝试连接目标主机的指定端口
s.connect((host, port))
# 输出连接成功的端口信息
print(f'{host}:{port} is open')
except:
# 输出连接失败的端口信息
print(f'{host}:{port} is closed')
finally:
# 关闭socket连接
s.close()
```
该脚本使用了Python的socket模块创建了一个TCP连接,尝试连接目标主机的指定端口。如果连接成功,说明该端口是开放的;如果连接失败,则说明该端口是关闭的。脚本循环遍历指定的端口范围,并输出结果。
相关问题
python端口扫描
在Python中进行端口扫描,可以使用`socket`库来创建TCP连接并尝试连接目标主机的指定端口。以下是一个简单的示例代码:
```python
import socket
# 目标主机的IP地址和端口范围
target_host = '127.0.0.1'
target_ports = range(1,100)
# 遍历端口范围并进行端口扫描
for target_port in target_ports:
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置连接超时时间为1秒
client_socket.settimeout(1)
try:
# 尝试连接目标主机的端口
result = client_socket.connect_ex((target_host, target_port))
# 判断连接是否成功
if result == 0:
print(f'Port {target_port} is open')
except socket.error:
print(f'Error connecting to port {target_port}')
finally:
# 关闭socket连接
client_socket.close()
```
在这个例子中,我们遍历指定的端口范围,然后使用`socket`库的`socket.AF_INET`参数创建一个TCP socket对象。然后,我们尝试连接每个端口,并根据返回结果判断端口是否开放。如果成功连接(返回值为0),则打印出该端口为开放状态。无论连接成功与否,最后都需要关闭socket连接。
请注意,对远程主机进行未经授权的端口扫描是违法的。在实际使用中,请确保遵守法律和道德规范,并获得适当的授权。
Python 端口扫描
Python可以使用socket模块进行端口扫描。代码大致如下:
```
import socket
def scan_ports(ip, start_port, end_port):
for port in range(start_port, end_port+1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((ip, port))
if result == 0:
print("Port {}: Open".format(port))
sock.close()
scan_ports("127.0.0.1", 1, 1000)
```
以上代码可以扫描127.0.0.1这个IP的1-1000号端口。需要注意的是,可能会出现防火墙等阻止端口扫描的情况。
阅读全文