YJWANG

[python] Linux 포트 오픈 체크 (check port listen) 본문

90.Programming

[python] Linux 포트 오픈 체크 (check port listen)

왕영주 2021. 4. 22. 11:17

python 3.x 를 사용하여 간단하게 port open을 체크할 수 있는 프로그램을 만들었습니다.
click과 socker module을 사용했으며 코드는 아래를 참고 부탁드립니다.

혹 동작하지 않으면 OS 배포판 및 python 버전에 따라서 #! /usr/bin/python3 부분이 다를 수 있습니다.
참고 부탁드립니다.

code

#! /usr/bin/python3
import socket
import click

@click.command()
@click.option('-i', '--ip',required=True ,type=str ,help='Destination IP Address for checking')
@click.option('-p', '--port',required=True ,type=int ,help='Port Number for checking')

def CheckSocket(ip,port):
    tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    tcp_result = tcp_sock.connect_ex((ip,port))

    if tcp_result == 0:
       click.echo("Port is open")
    else:
       click.echo("Port is not open")
    tcp_sock.close()

if __name__ == '__main__':
    CheckSocket()

동작 예시

help

# ./pcheck --help
Usage: pcheck [OPTIONS]

Options:
  -i, --ip TEXT       Destination IP Address for checking  [required]
  -p, --port INTEGER  Port Number for checking  [required]
  --help              Show this message and exit.

변수 미입력

# ./pcheck -i 10.10.10.10
Usage: pcheck [OPTIONS]
Try "pcheck --help" for help.

Error: Missing option "-p" / "--port".

# ./pcheck 
Usage: pcheck [OPTIONS]
Try "pcheck --help" for help.

Error: Missing option "-i" / "--ip".

포트 open 시

# ./pcheck -i 127.0.0.1 -p 8888
Port is open

포트 close 시

# ./pcheck -i 127.0.0.1 -p 8888
Port is not open
반응형