コード例 #1
0
def devlist(vendor=None, product=None, gps=None, include=None):
    '''
    Return device information for all present devices, 
    filtering if requested by vendor and/or product IDs on USB devices, and
    running device fingerprint functions on serial devices.
    @type gps: String
    @param gps: Optional serial device identifier for an attached GPS
        unit. If provided, or if global variable has previously been set, 
        KillerBee skips that device in device enumeration process.
    @type include: List of Strings
    @param include: Optional list of device handles to be appended to the 
        normally found devices. This is useful for providing IP addresses for
        remote scanners.
    @rtype: List
    @return: List of device information present.
                For USB devices, get [busdir:devfilename, productString, serialNumber]
                For serial devices, get [serialFileName, deviceDescription, ""]
    '''
    global usbVendorList, usbProductList, gps_devstring
    if gps is not None and gps_devstring is None:
        gps_devstring = gps
    devlist = []

    if USBVER == 0:
        devlist = devlist_usb_v0x(vendor, product)
    elif USBVER == 1:
        devlist = devlist_usb_v1x(vendor, product)

    for serialdev in get_serial_ports(include=include):
        if serialdev == gps_devstring:
            print("kbutils.devlist is skipping ignored/GPS device string {0}".
                  format(serialdev))  #TODO remove debugging print
            continue
        elif (DEV_ENABLE_ZIGDUINO and iszigduino(serialdev)):
            devlist.append([serialdev, "Zigduino", ""])
        elif (DEV_ENABLE_FREAKDUINO and isfreakduino(serialdev)):
            #TODO maybe move support for freakduino into goodfetccspi subtype==?
            devlist.append([serialdev, "Dartmouth Freakduino", ""])
        else:
            gfccspi, subtype = isgoodfetccspi(serialdev)
            if gfccspi and subtype == 0:
                devlist.append([serialdev, "GoodFET TelosB/Tmote", ""])
            elif gfccspi and subtype == 1:
                devlist.append([serialdev, "GoodFET Api-Mote v1", ""])
            elif gfccspi and subtype == 2:
                devlist.append([serialdev, "GoodFET Api-Mote v2", ""])
            elif gfccspi:
                print(
                    "kbutils.devlist has an unknown type of GoodFET CCSPI device ({0})."
                    .format(serialdev))

    if include is not None:
        # Ugly nested load, so we don't load this class when unneeded!
        import dev_sewio  #use isSewio, getFirmwareVersion
        for ipaddr in filter(isIpAddr, include):
            if dev_sewio.isSewio(ipaddr):
                devlist.append([
                    ipaddr, "Sewio Open-Sniffer v{0}".format(
                        dev_sewio.getFirmwareVersion(ipaddr)),
                    dev_sewio.getMacAddr(ipaddr)
                ])
            #NOTE: Enumerations of other IP connected sniffers go here.
            else:
                print(
                    "kbutils.devlist has an unknown type of IP sniffer device ({0})."
                    .format(ipaddr))

    return devlist
コード例 #2
0
ファイル: kbutils.py プロジェクト: JonathonReinhart/killerbee
def devlist(vendor=None, product=None, gps=None, include=None):
    '''
    Return device information for all present devices, 
    filtering if requested by vendor and/or product IDs on USB devices, and
    running device fingerprint functions on serial devices.
    @type gps: String
    @param gps: Optional serial device identifier for an attached GPS
        unit. If provided, or if global variable has previously been set, 
        KillerBee skips that device in device enumeration process.
    @type include: List of Strings
    @param include: Optional list of device handles to be appended to the 
        normally found devices. This is useful for providing IP addresses for
        remote scanners.
    @rtype: List
    @return: List of device information present.
                For USB devices, get [busdir:devfilename, productString, serialNumber]
                For serial devices, get [serialFileName, deviceDescription, ""]
    '''
    global usbVendorList, usbProductList, gps_devstring
    if gps is not None and gps_devstring is None:
        gps_devstring = gps
    devlist = []

    if USBVER == 0:
        devlist = devlist_usb_v0x(vendor, product)
    elif USBVER == 1:
        devlist = devlist_usb_v1x(vendor, product)

    for serialdev in get_serial_ports(include=include):
        if serialdev == gps_devstring:
            print("kbutils.devlist is skipping ignored/GPS device string {0}".format(serialdev)) #TODO remove debugging print
            continue
        elif (DEV_ENABLE_ZIGDUINO and iszigduino(serialdev)):
            devlist.append([serialdev, "Zigduino", ""])
        elif (DEV_ENABLE_FREAKDUINO and isfreakduino(serialdev)):
            #TODO maybe move support for freakduino into goodfetccspi subtype==?
            devlist.append([serialdev, "Dartmouth Freakduino", ""])
        else:
            gfccspi,subtype = isgoodfetccspi(serialdev)
            if gfccspi and subtype == 0:
                devlist.append([serialdev, "GoodFET TelosB/Tmote", ""])
            elif gfccspi and subtype == 1:
                devlist.append([serialdev, "GoodFET Api-Mote v1", ""])
            elif gfccspi and subtype == 2:
                devlist.append([serialdev, "GoodFET Api-Mote v2", ""])
            elif gfccspi:
                print("kbutils.devlist has an unknown type of GoodFET CCSPI device ({0}).".format(serialdev))

    if include is not None:
        # Ugly nested load, so we don't load this class when unneeded!
        import dev_sewio #use isSewio, getFirmwareVersion
        for ipaddr in filter(isIpAddr, include):
            if dev_sewio.isSewio(ipaddr):
                devlist.append([ipaddr, "Sewio Open-Sniffer v{0}".format(dev_sewio.getFirmwareVersion(ipaddr)), dev_sewio.getMacAddr(ipaddr)])
            #NOTE: Enumerations of other IP connected sniffers go here.
            else:
                print("kbutils.devlist has an unknown type of IP sniffer device ({0}).".format(ipaddr))
    
    return devlist