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
반응형