用Python写一个TCP端口测试工具
时间: 2023-07-18 07:29:30 浏览: 312
好的,以下是一个简单的Python代码,可用于测试TCP端口是否打开:
```python
import socket
def test_tcp_port(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
try:
sock.connect((ip, port))
print(f'TCP port {port} is open')
except socket.timeout:
print(f'TCP port {port} is closed')
finally:
sock.close()
# 测试示例
test_tcp_port('127.0.0.1', 8080)
```
在这个例子中,我们使用 Python 的 socket 库来创建一个 TCP 套接字对象。然后,我们使用 `settimeout()` 方法设置超时时间为 5 秒钟,以避免程序在等待响应时被阻塞。接下来,我们使用 `connect()` 方法连接指定的 IP 地址和端口。如果连接成功,我们就可以判断该端口是打开的。如果超时时间到了,我们就可以判断该端口是关闭的。最后,我们使用 `close()` 方法关闭套接字对象。
注意:在使用此代码时,请确保您有相应的权限来测试目标主机的端口。同时,请不要使用此代码来进行未经授权的渗透测试或攻击行为,以免违反法律法规。
相关问题
python写一个tcp端口扫描
可以使用Python的socket模块来实现TCP端口扫描,以下是一个简单的示例代码:
```python
import socket
target_host = "127.0.0.1"
target_ports = [80, 443, 8080]
for port in target_ports:
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.settimeout(0.5)
try:
client.connect((target_host, port))
print(f"Port {port} is open")
except:
print(f"Port {port} is closed")
client.close()
```
这段代码会扫描目标主机上的80、443和8080端口,如果端口开放则输出"Port [port] is open",否则输出"Port [port] is closed"。
用python2写一个tcp端口监听代码
以下是使用 Python 2 实现的 TCP 端口监听代码示例:
```python
import socket
# 定义要监听的主机和端口
HOST = '127.0.0.1'
PORT = 8888
# 创建一个 TCP/IP 套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定套接字到指定的地址和端口上
sock.bind((HOST, PORT))
# 开始监听连接
sock.listen(1)
# 循环监听,等待客户端连接
while True:
# 等待连接
print('Waiting for a client connection...')
client, address = sock.accept()
print('Accepted connection from {}:{}'.format(address[0], address[1]))
# 接收客户端数据
data = client.recv(1024)
print('Received data: {}'.format(data))
# 发送响应数据给客户端
response = 'Hello, client!'
client.sendall(response)
# 关闭客户端连接
client.close()
```
在上面的代码中,我们首先定义了要监听的主机和端口。然后使用 `socket` 模块创建一个 TCP/IP 套接字,并将其绑定到指定的地址和端口上。接下来,我们使用 `listen()` 方法开始监听连接。在一个无限循环中,我们使用 `accept()` 方法等待客户端连接。一旦客户端连接成功,我们打印出客户端的地址和端口信息,并使用 `recv()` 方法接收客户端发送的数据。然后,我们构造一个响应数据,并使用 `sendall()` 方法将其发送给客户端。最后,我们关闭客户端连接。
阅读全文