用python获取本机springboot所使用的端口
时间: 2024-02-01 15:15:09 浏览: 20
你可以通过以下代码使用 Python 获取本机 Spring Boot 应用程序所使用的端口:
```python
import psutil
# 获取所有进程列表
pids = psutil.pids()
# 遍历进程列表,查找 Spring Boot 进程
for pid in pids:
p = psutil.Process(pid)
if p.name() == "java":
cmdline = p.cmdline()
if len(cmdline) > 1 and "spring-boot" in cmdline[1]:
# 获取 Spring Boot 进程所使用的端口
for arg in cmdline:
if arg.startswith("--server.port="):
port = arg.split("=")[1]
print("Spring Boot 进程的端口号为:", port)
break
```
这里使用了 `psutil` 库来获取本机的所有进程信息,并遍历进程列表,查找 Spring Boot 进程。如果找到了 Spring Boot 进程,则从该进程的命令行参数中获取端口号,并输出到控制台。
相关问题
用python判断springboot使用的端口
可以通过以下步骤使用Python判断Spring Boot使用的端口:
1. 导入必要的模块:
```python
import re
import subprocess
```
2. 使用subprocess模块的Popen函数执行命令`netstat -tlnp`,并将结果转换为字符串:
```python
result = subprocess.Popen(['netstat', '-tlnp'], stdout=subprocess.PIPE)
output = result.communicate()[0].decode('utf-8')
```
3. 使用正则表达式查找Spring Boot使用的端口:
```python
pattern = r'tcp\s+\d+\s+\d+\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:(\d+)\s+.*java'
match = re.search(pattern, output)
if match:
port = match.group(1)
print('Spring Boot is using port', port)
else:
print('Spring Boot is not running')
```
完整的代码如下所示:
```python
import re
import subprocess
result = subprocess.Popen(['netstat', '-tlnp'], stdout=subprocess.PIPE)
output = result.communicate()[0].decode('utf-8')
pattern = r'tcp\s+\d+\s+\d+\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:(\d+)\s+.*java'
match = re.search(pattern, output)
if match:
port = match.group(1)
print('Spring Boot is using port', port)
else:
print('Spring Boot is not running')
```
python获取本机端口号
你可以使用Python内置的socket模块来获取本机端口号。以下是一个简单的示例代码:
```python
import socket
# 获取本地主机名
host = socket.gethostname()
# 设置一个空的IP地址,表示监听所有的网络接口
ip = ''
# 设置一个随机的端口号,0 表示自动分配一个空闲端口
port = 0
# 创建一个套接字对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口号
s.bind((ip, port))
# 获取绑定后的端口号
local_port = s.getsockname()[1]
print("本机端口号为:", local_port)
# 关闭套接字
s.close()
```
上述代码中,我们首先使用 `socket.gethostname()` 函数获取本地主机名,然后创建一个套接字对象并绑定到空的IP地址和一个随机的端口号上。接着,我们使用 `s.getsockname()[1]` 方法获取绑定后的端口号并打印出来。最后,我们关闭套接字。