Python/Python for Windows

[Python] 윈도우 netstat 명령어를 활용하여 아웃바운드 IP와 포트 추출

Pydole 2018. 4. 15. 03:28

파이썬을 이용한 윈도우의 netstat -n 명령어를 이용하여 아웃바운드IP와 포트 그리고 빈도수를 출력

 

* netstat : 모든 연결과 수신 대기 포트를 표시

* option : -n 주소와 포트 번호를 숫자 형식으로 표시

 

netstat -n 명령어의 출력을 지정된 파일에 적재. (sample 초당 100번. 많으면 많을 수록 더 많은 데이터가 수집)


import os
import time

cnt = 0

while cnt < 100:
	os.system('netstat -n >> 경로') # netstat -n 지정된 경로 파일적재
    cnt += 1
    time.sleep(1)

 

자신의 IP와 127.0.0.1을 제외한 IP와 포트 그리고 빈도 수를 출력

 

import collections
import re

ipnPort = re.findall(r'\d+[.]\d+[.]\d+[.]\d+[:]\d+', open(filename).read().lower())

for x, y in collections.Counter(ipnPort).most_common():
	if str(x).rpartition(':')[0] == '127.0.0.1' or str(x).rpartition(':')[0] == '자신IP':
		pass
	else:
		print(str(x)+'\t'+str(y))