本文目录导读:

Python 脚本方法
使用 socket 库(推荐)
import socket
def check_port(host, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2) # 超时设置
result = sock.connect_ex((host, port))
sock.close()
if result == 0:
print(f"端口 {port} 已被占用")
return True
else:
print(f"端口 {port} 可用")
return False
# 使用示例
check_port('127.0.0.1', 8080)
check_port('localhost', 3306)
多端口批量检测
def scan_ports(host, start_port, end_port):
available = []
occupied = []
for port in range(start_port, end_port + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.5)
result = sock.connect_ex((host, port))
if result == 0:
occupied.append(port)
else:
available.append(port)
sock.close()
return available, occupied
Bash/Shell 脚本
Linux/Mac 系统
#!/bin/bash
# 检查端口是否被占用
check_port() {
PORT=$1
if lsof -i :$PORT > /dev/null 2>&1; then
echo "端口 $PORT 已被占用"
return 0
else
echo "端口 $PORT 可用"
return 1
fi
}
# 使用 netstat
check_port_netstat() {
PORT=$1
if netstat -tuln | grep -q ":$PORT "; then
echo "端口 $PORT 已被占用"
return 0
else
echo "端口 $PORT 可用"
return 1
fi
}
# 使用 ss (推荐,更现代)
check_port_ss() {
PORT=$1
if ss -tuln | grep -q ":$PORT "; then
echo "端口 $PORT 已被占用"
return 0
else
echo "端口 $PORT 可用"
return 1
fi
}
# 使用示例
check_port 8080
Windows 系统 (PowerShell)
function Check-Port {
param([int]$Port)
$connections = Get-NetTCPConnection -LocalPort $Port -ErrorAction SilentlyContinue
if ($connections) {
Write-Host "端口 $Port 已被占用" -ForegroundColor Red
return $true
} else {
Write-Host "端口 $Port 可用" -ForegroundColor Green
return $false
}
}
# 使用 netstat
function Check-PortLegacy {
param([int]$Port)
$result = netstat -ano | Select-String ":$Port "
if ($result) {
return $true
}
return $false
}
# 使用示例
Check-Port 8080
Node.js 脚本
const net = require('net');
function checkPort(port, host = '127.0.0.1') {
return new Promise((resolve, reject) => {
const server = net.createServer();
server.once('error', (err) => {
if (err.code === 'EADDRINUSE') {
resolve(false); // 端口被占用
} else {
reject(err);
}
});
server.once('listening', () => {
server.close();
resolve(true); // 端口可用
});
server.listen(port, host);
});
}
// 使用示例
async function test() {
const isAvailable = await checkPort(8080);
if (isAvailable) {
console.log('端口可用');
} else {
console.log('端口已被占用');
}
}
通用检测原理
不同语言的实现原理类似:
- 尝试绑定端口:如果绑定成功表示端口空闲
- 尝试建立连接:如果连接成功表示端口被占用
- 系统命令调用:使用系统工具检测
注意事项
- 权限问题:检测低于1024的端口可能需要管理员权限
- 超时设置:网络延迟可能导致检测不准确,建议设置合理超时
- 防火墙影响:防火墙可能阻止连接,导致误判
- 端口复用:某些服务可能使用SO_REUSEADDR选项,需特殊处理
选择哪种方法取决于你的使用场景和编程环境,Python的socket方法最为通用且跨平台。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播