파이썬 윤리적 해킹 - NETWORK_SCANNER (2)

사전

  • 목록 유사하지만, 대신 인덱스의 키를 사용합니다.

기울기

  • 값 / 요소 목록은 모두 하나 개의 변수에 저장할 수 있습니다.

사전의 목록을 사용하여 프로그램을 개선 :

# !는 / usr / 빈 / ENV 파이썬 

수입 scapy.all scapy 같이 

데프 스캔 (IP) : 
    arp_request = scapy.ARP (pdst = IP) 
    방송 = scapy.Ether (DST = " FF : FF : FF : FF : FF : FF " ) 
    arp_request_broadcast = 브로드 캐스트 / arp_request 
    answered_list = scapy.srp (arp_request_broadcast, 초과 = 1, = 상세 거짓) [0] 

    clients_list = []
     를위한 소자 answered_list : 
        clients_dict = { " IP " : 소자 [1] .psrc, " " : 소자 [1 ]} .hwsrc 
        clients_list.append (clients_dict) 
    반환 clients_list 

DEF print_result (results_list)
     인쇄 ( " IP \ t \ t \ TMAC 주소 \ 없음 -------------- ---------------------------- " )
     에 대한 클라이언트 results_list :
         인쇄 (클라이언트 [ " IP " ] + " \ t \ t " 클라이언트 + [ " MAC " ]) 
        
scan_result = 검사 ( " 10.0.0.1/24 " ) 
print_result (scan_result)

결과:

 

파이썬 코드를 작성합니다 :

# 는 / usr / 빈 / ENV 파이썬! 

수입 scapy의 같은 scapy.all
 수입 argparse 

데프 get_arguments () : 
    파서 = argparse.ArgumentParser () 
    parser.add_argument ( " -t " , " --target " , 이명 령 = " 대상 " , 도움말 = " 대상 IP / IP 범위. " ) 
    옵션 = parser.parse_args ()
     반환 옵션 

데프 스캔 (IP) : 
    arp_request = scapy.ARP (pdst = IP) 
    방송= scapy.Ether (DST = " FF : FF : FF : FF : FF : FF ' ) 
    arp_request_broadcast = 브로드 캐스트 / arp_request 
    answered_list = scapy.srp (arp_request_broadcast, 초과 = 1, 장황 = 거짓) [0] 

    clients_list = []
     를위한 소자 answered_list : 
        clients_dict = { " IP " : 소자 [1] .psrc는 " MAC " : 소자 [1 ]} .hwsrc 
        clients_list.append (clients_dict)를 
    반환 clients_list 

DEF : print_result (results_list)
     프린트( " IP \ t \ t \ TMAC 주소 \ n을 -------------------------------------- ---- " )
     에 대한 클라이언트 results_list :
         인쇄 (클라이언트 [ " IP " ] + " \ t \ t ' + 클라이언트 [ " MAC " ]) 

옵션 = get_arguments () 
scan_result = 주사 (options.target) 
print_result (scan_result )

 

 

추천

출처www.cnblogs.com/keepmoving1113/p/11366960.html