본문 바로가기

Programming/Python Program

[PYTHON] Python을 이용한 웹사이트 스캐너 만들기 - 7. 완결편

이번 시간에는 그동안 만들어 둔 함수들을 가지고 종합적으로 다루어 보도록 하겠습니다.

1편 소개편에서 말씀드린것 처럼 이것을 가지고 자신에게 보다 더 유용한 방향으로 수정, 편집해서 사용하시면 도움이 되리라 봅니다.

그럼 시작해보겠습니다.

1. 가장 처음 만들어 둔 main.py로 이동을 합니다. 여기에서 위와 같이 앞에서 만든 함수들을 불러옵니다.

2. ROOT_DIR 를 'sites' 라는 이름으로 지정을 해주었습니다. 향후 이 'sites' 폴더 밑에 각 사이트의 정보가 쌓이게 될 것입니다.

3. ROOT_DIR을 만들어 줄 것입니다. 아직 create_dir 함수를 정의하지 않았는데, 이는 아래에서 다룰 예정입니다.

4. 이제까지 만든 함수들을 종합적으로 다룰 함수 'gather_info'를 정의해 주고 인자로 name, url을 받게 합니다.

5. domain_name 을 만들어 둔 함수를 불러와서 지정합니다.

6. ip_address 도 만들어 둔 함수를 불러와서 지정합니다.

7. nmap 도 마찬가지입니다. 여기서 옵션인 ' -F' 는 빠르게 스캔하라는 의미입니다. 대신 디테일한 정보는 안나옵니다. 이 옵션을 변경하면 자세히 볼 수 있겠죠?

8. robots.txt 도 마찬가지로 지정합니다.

9. whois 도 동일합니다.

10. 이렇게 수집한 정보를 수집하여 텍스트로 만들 예정입니다. 이는 아래에 다른 함수로 지정할 예정입니다.

11. 위에서 정의한 것들을 리포트로 만들 함수를 만들것입니다. 물론 텍스트가 아니라 다양한 포맷으로도 할수 있으며 DB 로 저장하게끔 할 수도 있습니다.

12. 만들어 줄 디렉토리를 스캔할 사이트 명으로 지정.

13. 프로젝트 명으로 디렉토리를 생성합니다.

14. 스캔하는 사이트의 풀네임을 파일로 만들어 줍니다.

15. 도메인 네임을 파일로 만들어 줍니다.

16. nmap 을 nmap.txt에 저장합니다.

17. robots_txt를 robots_txt.txt 파일에 저장합니다.

18. whois 내용을 whois.txt에 저장합니다.

19. 이제 이렇게 생성한 정보가 맞는지 확인해 봐야겠죠? 위와 같이 이름은 'tistory' , full url 은 'http://www.tistory.com/'으로 하고 제대로 구현이 되었는지 확인합니다.


20. 네.. 잘 나오네요.

21. 위의 정보는 왼쪽 창을 보시면 각각의 파일의 형태로 저장이 되었습니다.


!!!!! 아... 한가지 실수 한게 있네요. 다시 수정하고 스샷을 찍어야하는데, 귀찮아서 그냥 말로 설명하겠습니다. 위의 코드중에 

write_file(project_dir + '/full_url.txt', full_url)

여기 아래쪽에  전부 '/' 가 빠져있네요. 그래서 tistory 폴더 안이 아니라 밖에 저장이 되었습니다. 이부분만 수정하시면 될듯 합니다.


여기까지 기초적인 웹사이트 스캐닝을 파이썬으로 구현해 보았습니다. 수고하셨습니다.