__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
# -*- coding: utf-8 -*-
#
# (c) Copyright 2003-2015 HP Development Company, L.P.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
#
# Author: Nitin Kumar
#

# StdLib
import time
import io
import binascii
import xml.parsers.expat
from string import *
import json, ast

# Local
from .g import *
from . import device, utils
from .sixext import to_bytes_utf8
from base.sixext import PY3, to_bytes_utf8, to_unicode, to_string_latin, to_string_utf8, xStringIO
from .sixext.moves import http_client
import json, ast
import sys
import time

MAX_RETRIES = 5
token = ''
adaptorId = ''
hostname=''

CDM_AUTH_REQ = "/cdm/oauth2/v1/token"
CDM_ADP_CONF = "/cdm/ioConfig/v2/adapterConfigs"
CDM_WIFI_SCAN = "/cdm/ioConfig/v2/wifiScan"
#CDM_WLAN_PROFILE = "/cdm/ioConfig/v2/wlanProfiles" #Old and deprecated replaced by wirelessConfig service
CDM_WIRELESS_CONFIG = "/cdm/ioConfig/v2/wirelessConfig"
CDM_WIFI_DIAG = "/ioConfig/v2/wifiDiagnostics"
CDM_SERVICE_DISCOVERY = "/cdm/servicesDiscovery" #this can be used to query device CDM services tree

HTTP_OK = 200
HTTP_CREATED = 201
HTTP_ACCEPTED = 202
HTTP_NOCONTENT = 204
HTTP_ERROR = 500
HTTP_UNAUTHORIZED = 401

def flushThePort(dev):
    response = io.BytesIO()
    timeout = 1
    dev.openEWS_LEDM()
    try:
        dev.readLEDMAllData(dev.readEWS_LEDM, response, timeout)
    except Error:            
        log.debug("Unable to read LEDM Channel")
    finally:
        dev.closeLEDM()

def getCDMToken(dev, uname, password):
    flushThePort(dev)
    global token
    data = {}
    data['grant_type'] = "password"
    data['username'] = uname
    data['password'] = password
    data = json.dumps(data)

    auth = 'token'
    data, respcode = http_post_req(dev, CDM_AUTH_REQ, data, auth)
    if not(respcode == HTTP_OK):
        log.debug("Request Failed With Response Code %d, enter correct credentials" % respcode)
        return False
    else:
        data = json.loads(data.strip())
        data = ast.literal_eval(json.dumps(data))
        token = data['access_token']
        return True

#Post Request
def http_post_req(dev, URI, data_json ,auth = None):
    global token
    dev.openEWS_LEDM()
    if token:        
        dev.writeEWS_LEDM("""POST %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nCache-Control: no-cache\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\nAuthorization: Bearer %s\r\n\r\n"""%(URI,len(data_json), token))
    else:
        dev.writeEWS_LEDM("""POST %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nCache-Control: no-cache\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\n\r\n"""%(URI,len(data_json)))

    dev.writeEWS_LEDM(data_json)
    reply = xStringIO()
    try:
        dev.readLEDMData(dev.readEWS_LEDM,reply)
        reply.seek(0)
        response = http_client.HTTPResponse(reply)
        response.begin()
        respcode = response.getcode()
        data = response.read()
        return data, respcode
    except :
        dev.closeEWS_LEDM()
        log.debug("Unable to read EWS_LEDM Channel")
        return "",HTTP_ERROR

#Patch Request
def http_patch_req(dev, URI, data):
    global token
    data_json = json.dumps(data)

    dev.openEWS_LEDM()
    if token:
        dev.writeEWS_LEDM("""PATCH %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\nAuthorization: Bearer %s\r\n\r\n"""%(URI,len(data_json), token))
    else:
        dev.writeEWS_LEDM("""PATCH %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\n\r\n"""%(URI,len(data_json)))
    dev.writeEWS_LEDM(data_json)
    reply = xStringIO()
    try:
        dev.readLEDMData(dev.readEWS_LEDM,reply)
        reply.seek(0)  
        response = http_client.HTTPResponse(reply)
        result = 10
        while result:
            try:
                response.begin()
                result = 0
            except:
                log.debug("Unable to begin response, retrying ...")
                time.sleep(5)
                result -= 1
                pass
        respcode = response.getcode()
        data = response.read()
        return data,respcode
    except Error:
        dev.closeEWS_LEDM()
        log.debug("Unable to read EWS_LEDM Channel")

#Get Request
def http_get_req(dev, URI):
    global token
    #headers = "{'Authorization': 'Bearer %s'}"%(token)
    dev.openEWS_LEDM()
    if token:
        dev.writeEWS_LEDM("""GET %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nCache-Control: no-cache\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\nAuthorization: Bearer %s\r\n\r\n"""%(URI,len(URI),token))
    else:
        dev.writeEWS_LEDM("""GET %s HTTP/1.1\r\nContent-Type: application/json\r\nUser-Agent: hplip\r\nAccept: */*\r\nCache-Control: no-cache\r\nHost:localhost\r\nConnection: keep-alive\r\nContent-Length: %s\r\n\r\n"""%(URI,len(URI)))

    reply = xStringIO()
    try:
        dev.readLEDMData(dev.readEWS_LEDM,reply, 30)
        reply.seek(0)
        response = http_client.HTTPResponse(reply)
        response.begin()
        respcode = response.getcode()
        data = response.read()
        return data, respcode
    except Error:
        dev.closeEWS_LEDM()
        log.debug("Unable to read EWS_LEDM Channel")

def eth_connect_check(dev):
    global adaptorId
    data, respcode = http_get_req(dev, adaptorId)
    if not(respcode == HTTP_OK):
        log.debug("Request Failed With Response Code %d" % respcode)
        return
    data = json.loads(data.strip())
    #data = ast.literal_eval(json.dumps(data))

    rdata=""
    max_tries = 0
    while max_tries < MAX_RETRIES:
        max_tries += 1
        if data['connectionState'] == 'connected':
            break
        time.sleep(5)
        rdata, respcode = http_get_req(dev, adaptorId)
        if not(respcode == HTTP_OK):
            log.debug("Request Failed With Response Code %d" % respcode)
            return

    data = json.loads(rdata.strip())
    data = ast.literal_eval(json.dumps(data))
    return (data['connectionState'] == 'connected')

def getHostname(dev):
    global hostname
 
    return hostname

def getWifiAdaptorID(dev):
    global adaptorId
    rVal = []
    data, respcode = http_get_req(dev, CDM_ADP_CONF)
    if not(respcode == HTTP_OK):
        log.debug("Request Failed With Response Code %d" % respcode)
        return rVal
    data = json.loads(data.strip())
    data = ast.literal_eval(json.dumps(data))
    for each in data:
        if each == 'wifi0' or each == 'wifi1':
            rVal.append(data[each]['links'][0]['href'])
            rVal.append(data[each]['adapterName'])
    if(rVal):
        adaptorId = rVal[0]
    return rVal

def setAdaptorPower(dev, adaptor_list):
    state = ''
    presense = ''
    adaptor_id=-1
    adaptorName =""
    adaptor_id = adaptor_list[0]
    adaptorName = adaptor_list[1]
    d = {'enabled' : 'true'}
    data,respcode = http_patch_req(dev, adaptor_id, d)
    if respcode not in [HTTP_ACCEPTED,HTTP_NOCONTENT,HTTP_OK]:
        log.debug("Request Failed With Response Code %d" % respcode)
        return
    return adaptor_id, adaptorName, state, presense

def performScan(dev, adaptor_id):
    ret ={}
    '''
    #use this block to enable CDM service discovery
    data, respcode = http_get_req(dev, CDM_SERVICE_DISCOVERY)
    if respcode not in [HTTP_ACCEPTED,HTTP_NOCONTENT,HTTP_OK]:
        log.debug("CDM service discovery Failed With Response Code %d" % respcode)
    else:
        data = json.loads(data.strip())
        data = ast.literal_eval(json.dumps(data))
        log.debug("CDM service discovery tree: /n%s" %data)
    '''

    data, respcode = http_get_req(dev, CDM_WIFI_SCAN)
    if respcode not in [HTTP_ACCEPTED,HTTP_NOCONTENT,HTTP_OK]:
        log.debug("get cdm wifiscan Request Failed With Response Code %d" % respcode)
        return

    data = {'state' : 'scanProcessing', 'scanType'  : 'undirected'}
    rdata,respcode = http_patch_req(dev, CDM_WIFI_SCAN, data)
    if respcode not in [HTTP_ACCEPTED,HTTP_NOCONTENT,HTTP_OK]:
        log.debug("patch cdm wifiscan Request Failed With Response Code %d" % respcode)
        return

    scan_state = "scanProcessing"
    while(scan_state != "readyToScan"):
        data, respcode = http_get_req(dev, CDM_WIFI_SCAN)
        if respcode not in [HTTP_ACCEPTED,HTTP_NOCONTENT,HTTP_OK]:
            log.debug("get cdm wifiscan Request Failed With Response Code %d" % respcode)
            return
        else:
            data = json.loads(data.strip())
            data = ast.literal_eval(json.dumps(data))
            scan_state = data["state"]


    URI = "%s/%s" % (CDM_WIFI_SCAN, "wifiNetworks")
    data, respcode = http_get_req(dev, URI)
    if not(respcode == HTTP_OK):
        log.debug("get cdm wifiNetworks list Request Failed With Response Code %d" % respcode)
        return
    data = json.loads(data.strip())
    data = ast.literal_eval(json.dumps(data))
    elementCount = len(data['wifiNetworkList'])
    ret['numberofscanentries'] = elementCount
    ret['signalstrengthmin'] = 5
    ret['signalstrengthmax'] = 0
    if elementCount == 1:
        pass
    else:
        for a in range(elementCount):
            ret['ssid-%d' % a] = data['wifiNetworkList'][a]['ssid']
            ret['channel-%d' % a] = data['wifiNetworkList'][a]['channel']
            ret['communicationmode-%d' % a] = data['wifiNetworkList'][a]['communicationMode']
            ret['dbm-%d' % a] = data['wifiNetworkList'][a]['signalStrength']['dBm']
            ret['encryptiontype-%d' % a] = data['wifiNetworkList'][a]['encryptionType']
            ret['authenticationMode-%d' % a] =  data['wifiNetworkList'][a]['authenticationMode']
            try:
                ret['bssid-%d' % a] = data['wifiNetworkList'][a]['bssid']
            except KeyError:
                log.debug("Bssid not present in network -%s" %data['wifiNetworkList'][a]['ssid'])
                ret['bssid-%d' % a] = None

            try:
                ret['signalstrength-%d' % a] =  int(data['wifiNetworkList'][a]['signalStrength']['signalStrength'])
            except KeyError:
                ret['signalstrength-%d' % a] =  1
            try:
                ret['wpaVersionPreference-%d' % a] =  data['wifiNetworkList'][a]['wpaVersion']
            except KeyError:
                ret['wpaVersionPreference-%d' % a] =  None
            if ret['signalstrengthmax'] < int(ret['signalstrength-%d' % a]):
                ret['signalstrengthmax'] = int(ret['signalstrength-%d' % a])
            if ret['signalstrengthmin'] > int(ret['signalstrength-%d' % a]):
                ret['signalstrengthmin'] = int(ret['signalstrength-%d' % a])
    return ret

def getIPConfiguration(dev, adapterName):
    global hostname
    data, respcode = http_get_req(dev, CDM_ADP_CONF)
    if not(respcode == HTTP_OK):
        log.debug("get CDM_ADP_CONF Request Failed With Response Code %d" % respcode)
        return
    data = json.loads(data.strip())
    data = ast.literal_eval(json.dumps(data))
    for each in data:
        if each == 'wifi0' or each == 'wifi1':
            ip = data[each]['ipv4']['address']['ip']
            subnetmask = data[each]['ipv4']['address']['subnet']
            gateway = data[each]['ipv4']['address']['gateway']
            pridns = data[each]['ipv4']['dnsServer']['primary']['address']
            sec_dns = data[each]['ipv4']['dnsServer']['secondary']['address']
            hostname = data[each]['identity']['hostname']['name']
            addressmode = data[each]['ipv4']['address']['requestedConfigMethod']
            return ip, hostname, addressmode, subnetmask, gateway, pridns, sec_dns

def associate(dev, wpaVersionPreference, ssid, authenticationMode, security, key):
    if authenticationMode == 'wpaOrWpa2':
        authenticationMode = 'auto'
    ret= {}

    data, respcode = http_get_req(dev, CDM_WIRELESS_CONFIG)
    if not(respcode == HTTP_OK):
        log.error("get CDM_WIRELESS_CONFIG Request Failed With Response Code %d" % respcode)
        return
    data = json.loads(data.strip())
    data = ast.literal_eval(json.dumps(data))

    del data['version']

    preferredProfile=data['preferredProfile']
    data[preferredProfile]['authenticationMode'] = authenticationMode
    data[preferredProfile]['encryptionType'] = security
    data[preferredProfile]['ssid'] = ssid
    data[preferredProfile]['wpaVersionPreference'] = wpaVersionPreference
    data[preferredProfile]['passPhrase'] = key
        
    data, respcode = http_patch_req(dev, CDM_WIRELESS_CONFIG, data)
    if not(respcode == HTTP_NOCONTENT):
        log.debug("patch CDM_WIRELESS_CONFIG Request Failed With Response Code %d" % respcode)
        return

    if not(eth_connect_check(dev)):
        log.debug("wifi not connected, remove ethernet and try")

    return ret


def getVSACodes(dev, adapterName):
    ret = []
    return ret  

def getSignalStrength(dev, adapterName, ssid, adaptor_id=0):
    ss_max, ss_min, ss_val, ss_dbm = 5, 0, 0, -200
    return  ss_max, ss_min, ss_val, ss_dbm

def getCryptoSuite(dev, adapterName):
    alg, mode, secretid = '', '', ''
    return  alg, mode, secretid

def checkAuthrequired(dev):
    result = False
    _data, respcode = http_get_req(dev, CDM_ADP_CONF)
    if respcode in [HTTP_UNAUTHORIZED]:
        result = True
    return result
    

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
pexpect Folder 0755
CdmWifi.py File 13.85 KB 0644
LedmWifi.py File 30.33 KB 0644
__init__.py File 826 B 0644
avahi.py File 3.01 KB 0644
codes.py File 30.63 KB 0644
device.py File 97.95 KB 0644
dime.py File 3.3 KB 0644
exif.py File 35.17 KB 0644
g.py File 14.57 KB 0644
imageprocessing.py File 35.33 KB 0644
imagesize.py File 5.75 KB 0644
ldif.py File 16.33 KB 0644
local.py File 2.36 KB 0644
logger.py File 18.06 KB 0644
magic.py File 63.2 KB 0644
maint.py File 58.36 KB 0644
mdns.py File 10.05 KB 0644
mfpdtf.py File 17.34 KB 0644
models.py File 19.16 KB 0644
module.py File 28.49 KB 0644
os_utils.py File 2.28 KB 0644
password.py File 11.43 KB 0644
pkit.py File 11.45 KB 0644
pml.py File 26.46 KB 0644
queues.py File 16.37 KB 0644
services.py File 9.74 KB 0644
six.py File 22.32 KB 0644
sixext.py File 5.78 KB 0644
slp.py File 5.8 KB 0644
smart_install.py File 11.55 KB 0644
status.py File 89.17 KB 0644
strings.py File 28.21 KB 0644
tui.py File 13.79 KB 0644
utils.py File 80.24 KB 0644
validation.py File 3.68 KB 0644
vcard.py File 43.7 KB 0644
wifi.py File 22.25 KB 0644
Filemanager