Python 포트 검 측 방법

3880 단어 python포트검출
1.배경:
평소 작업 중 에 포트 검 사 를 만 나 서버 의 특정 포트 가 대외 적 으로 개방 되 었 는 지,nmap,tcping,telnet 등 을 자주 사용 하 는 지 확인 하 는 동시에 역장 도구 등 웹 스 캔 포트 등 도 이용 할 수 있 습 니 다.
하지만 역장 도구 로 발견:
  • 매번 검 측 된 주소 만 입력 할 수 있 습 니 다
  • 4.567917.여러 포트 를 입력 할 수 있 지만 하나의 포트 범 위 를 지정 하여 대량 검 사 를 할 수 없습니다
  • 대량 작업 기록 로그 등 이 없습니다
  •  
    랜 검색 시작 단 네트워크 제한 으로 인 한 포트 검사 이상 을 피하 기 위해 python-nmap 를 사용 하지 않 습 니 다.
    역장 도 구 를 호출 하여 실현 하고 싶 습 니 다.
  • 한 번 에 여러 주소 나 도 메 인 이름 을 검색 할 수 있 습 니 다
  • 단 어 는 포트 범 위 를 지정 할 수 있 고 대량 검 측
  • 기록 일지
    2.코드:
    2.1 구조
     
    2.2 코드
    github 주소
    부분 코드
    
    #    
    #      
    [port_check_info]
    #  ip     
    #address = baidu.com
    #address = 127.0.0.1
    address = www.anchnet.com,www.51cto.com,www.baidu.com
    #     ,       ,  ,      '-'
    #ports = 80,8080....
    ports = 20-25,80,443,1433,1521,3306,3389,6379,8080,27017
    #    
    [loginfo]
    #    
    logdir_name = logdir
    #      
    logfile_name = check_port.log
      def _get_body(self):
        """
          address port
        :return: list
        """
        address_list = self.address_list.split(',')
        port_list = self.port_list.split(',')
        #       ,  range
        range_flag = False
        port_range = None
        content_List_range = []
        for port in port_list:
          if '-' in port:
            range_flag = True
            port_range = range(int(port.split('-')[0]),int(port.split('-')[1])+1)
            port_list.remove(port)
        #     list
        for add in address_list:
          if range_flag:
            for port in port_range:
              content_List_range.append(add + ':' + str(port))
        #   range   list
        content_List = [ add+':'+port for add in address_list for port in port_list ]
        content_List_range.extend(content_List)
        return content_List_range
      def run(self):
        """
              
        :return:
        """
        for content in self._get_body():
          content_list = content.split(':')
          body = {
            'host': content_list[0],
            'port': content_list[1],
            'encode': 'tlCHS1u3IgF4sC57m6KOP3Oaj1Y1kfLq'
          }
          try:
            response = requests.post(url=self.url,data=body,headers=self.headers)
            port_status = re.findall("msg:'(.*?)'", response.text)
            if len(port_status) > 0:
              # print('%s,port status is:%s' % (content, port_status))
              self.logoper.info('%s,port status is:%s' % (content, port_status))
            else:
              self.logoper.info('%s,port status is:%s' % (content, port_status))
              # print('Occer error!           ')
          except Exception as e:
            print(e)
    3.테스트:
    3.1 검사 결과 보기

    51cto 의 8080 포트 도 열 려 있 습 니 다.
    3.2 로그 보기
     
    4.개선:
    4.567917.후기 에 비동기 다 중 프로 세 스 등 을 추가 하여 효율 을 높 일 수 있다.
    4.567917.여러 사이트 의 검 측 결 과 를 비교 하여 결 과 를 더욱 정확 하 게 할 수 있다.
    nmap 내 망 통합 도 검 측 가능총결산
    위 에서 말 한 것 은 소 편 이 소개 한 Python 이 포트 검 사 를 실현 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기