홍카나의 공부방

[컴퓨터 네트워크] 6-2. Python의 psutil을 이용하여 열린 포트 찾기 본문

Computer Network

[컴퓨터 네트워크] 6-2. Python의 psutil을 이용하여 열린 포트 찾기

홍문관카페나무 2023. 1. 11. 23:59

 

Windows에서는 파이썬의 psutil 라이브러리를 이용하여

현재 열려 있는 포트와 해당 포트를 사용하는 프로세스의 목록을 가져올 수 있다.

 

다음 코드를 작성해서 실행시켜보자.

 

import psutil

def open_ports():
    open_ports = {}
    for conn in psutil.net_connections(kind='tcp'):
        if conn.status == 'ESTABLISHED':
            process = psutil.Process(conn.pid)
            process_name = process.name()
            open_ports[conn.laddr.port] = process_name
    return open_ports

ports = open_ports()
for port, process in ports.items():
    print(f"Port {port} is open and used by {process}")

 

이를 실행시켜보면

 

ex) Port 12345 is open and used by chrome.exe

이런 식으로 현재 어떤 포트가 열려있고 해당 포트를 사용하는 프로세스의 목록을 알 수 있다.

 

psutil의 net_connections method는 시스템에서 열려 있는 모든 TCP 연결의 리스트를 가져오며

연결이 활성 상태임을 의미하는 ESTABLISHED 상태의 연결을 필터링하는 구조다.

반응형