Project
CoffeeNet Project 일지(2) - Scanner 만들기 시작
Hansoo1018
2018. 3. 27. 13:53
1. Framework의 update 기능 및 info 명령시 각 명령어에 대한 설명 추가.
2. Scanner 제작.
아직 1번은 못했다. (하기는 쉽지만, 귀찮아서... 하지만 조만간 곧 1번은 마무리할것이다.!! 미루는 것은 안좋으므로!)
오늘은 지난 계획 중 2번 스캐너 제작에 돌입했다.
오늘은 스캐너 제작에서 첫 단계인 현재 내 컴퓨터에서 인터페이스를 설정하고, 해당 인터페이스의 IP주소, Gateway 주소, Netmask 정보를 구해오는 작업을 했다.
Python의 netifaces 라이브러리를 사용했다.
제일 첫 단계로 인터페이스를 잡아야한다.!
(인터페이스 리스트)
netifaces 라이브러리의 interfaces 함수를 사용하면 현재 호스트의 인터페이스 리스트가 반환된다.
(결과)
이걸 가지고 scanner 시작할 때 원하는 인터페이스를 선택하도록 할 것이다.
인터페이스가 설정 되었으면 그 인터페이스의 ip 정보를 확인해 볼 수 있다.
(ifaddresses)
ifaddresses 함수를 사용한다.
(결과)
결과 해당 인터페이스의 ip정보가 나온다. 난 IPv4를 사용할 것이다.
(AF_INET)
(AF_INET)
'addr' 키를 넣으면 해당 ip 주소 데이터가 나온다.
(결과)
이제 gateway 주소를 얻어올 것이다.
gateway정보는 gateways 함수를 사용하면 된다.
(gateways() 함수)
(결과)
그러면 기본 gateway의 주소를 구할 수 있게 된다.
(gateway주소)
(결과)
이제 인터페이스가 연결되어있는 네트워크의 사이즈를 파악하기 위해 netmask를 구해야한다.
netmask 정보는 아까 ifaddresses 함수의 결과 안에 있었다. 거기서 netmask 정보를 가져온다.
(netmask)
(결과)
이제 netmask의 정보를 가지고 cidr도 구할 수 있으며, 이를 이용해 네트워크 호스트 스캔을 할 때 이용할 수 있을 것이다.
지금까지 알아본 정보로 CoffeeNet 프로젝트에 기능을 추가했다.
(CoffeeNet 의 Tool, Scanner)
scan_func 파일을 만들어 스캐너에 필요한 함수를 전부 여기다 정리해 둘 것이다.
(scan_func.py)
그러면 지금까지 정리된 툴을 실행시켜보겠다.
(use scanner)
그러면 인터페이스를 설정하는 선택지가 나온다.
(번호 선택)
인터페이스를 잡게되면
처음 Scanner시작화면이 뜨게된다.
(Scanner 화면)
그리고 현재 로컬 IP주소와 Gateway 주소를 보여주게 만들었다.
오늘 구현한 기능
- scanner의 인터페이스 설정 부분, 설정된 인터페이스의 IP정보 구하기.
현재까지 구현한 기능
1. Framework 내 tool import 등록, 연동
2. 각 Framework의 기능 구현(list, use, info, exit)
3. scanner의 인터페이스 설정 부분, 설정된 인터페이스의 IP정보 구하기.
다음 계획
1. Framework의 update 기능 및 info 명령시 각 명령어에 대한 설명 추가.
2. 선택한 인터페이스의 IP대역에 있는 호스트 스캐닝 구현