31 lines
701 B
TypeScript
31 lines
701 B
TypeScript
#!/usr/bin/env bun
|
|
import net from "net";
|
|
|
|
interface CheckPortResult {
|
|
port: number;
|
|
open: boolean;
|
|
}
|
|
|
|
export default function checkPort(port: number, host: string): Promise<CheckPortResult> {
|
|
return new Promise((resolve) => {
|
|
const socket = new net.Socket();
|
|
socket.setTimeout(200);
|
|
|
|
socket.once("connect", () => {
|
|
socket.destroy();
|
|
resolve({ port, open: true });
|
|
});
|
|
|
|
socket.once("timeout", () => {
|
|
socket.destroy();
|
|
resolve({ port, open: false });
|
|
});
|
|
|
|
socket.once("error", () => {
|
|
socket.destroy();
|
|
resolve({ port, open: false });
|
|
});
|
|
|
|
socket.connect(port, host);
|
|
});
|
|
} |