code: def getbulk_by_oid(self, non_repeaters, max_repetitions, *oid):
          
          if self.version.startswith('3'):
              errorIndication, errorStatus, errorIndex, varBinds = self.cmdGen.getCmd(
                  cmdgen.UsmUserData(self.user, self.auth),
                  cmdgen.UdpTransportTarget((self.host, self.port)),
                  non_repeaters,
                  max_repetitions,
                  *oid
              )
          if self.version.startswith('2'):
              errorIndication, errorStatus, errorIndex, varBindTable = self.cmdGen.bulkCmd(
                  cmdgen.CommunityData(self.community),
                  cmdgen.UdpTransportTarget((self.host, self.port)),
                  non_repeaters,
                  max_repetitions,
                  *oid
              )
          else:
              # Bulk request are not available with SNMP version 1
              return []
          return self.__bulk_result__(errorIndication, errorStatus, errorIndex, varBindTable)
docs: SNMP getbulk request.
  
          In contrast to snmpwalk, this information will typically be gathered in
          a single transaction with the agent, rather than one transaction per
          variable found.
  
          * non_repeaters: This specifies the number of supplied variables that
            should not be iterated over.
          * max_repetitions: This specifies the maximum number of iterations over
            the repeating variables.
          * oid: oid list
          > Return a list of dicts