31 lines
906 B
Python
31 lines
906 B
Python
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import socket
|
|
import sys
|
|
|
|
|
|
def main() -> int:
|
|
parser = argparse.ArgumentParser(description="Check raw TCP reachability to an RDP target.")
|
|
parser.add_argument("--host", required=True, help="RDP host or IP")
|
|
parser.add_argument("--port", required=True, type=int, help="RDP TCP port")
|
|
parser.add_argument("--timeout", type=float, default=5.0, help="connect timeout seconds")
|
|
args = parser.parse_args()
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
sock.settimeout(args.timeout)
|
|
try:
|
|
sock.connect((args.host, args.port))
|
|
except OSError as exc:
|
|
print(f"tcp_connect=failed host={args.host} port={args.port} error={exc}")
|
|
return 1
|
|
finally:
|
|
sock.close()
|
|
|
|
print(f"tcp_connect=ok host={args.host} port={args.port}")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|