10-09-2018 09:15 AM
10-10-2018 04:16 AM
from zeep import Client
from zeep.cache import SqliteCache
from zeep.transports import Transport
from zeep.plugins import HistoryPlugin
from requests import Session
from requests.auth import HTTPBasicAuth
from lxml import etree
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
USERNAME = 'username'
PASSWORD = 'password'
WSDL = 'file://C://temp//API//RISService70.wsdl'
IPS = ['192.168.1.*']
session = Session()
session.verify = False
session.auth = HTTPBasicAuth(USERNAME, PASSWORD)
transport = Transport(cache=SqliteCache(), session=session, timeout=20)
history = HistoryPlugin()
#client = Client(wsdl=WSDL, transport=transport, plugins=[history])
client = Client(wsdl=WSDL, transport=transport)
factory = client.type_factory('ns0')
item = []
for ip in IPS:
item.append(factory.SelectItem(Item=ip))
Item = factory.ArrayOfSelectItem(item)
stateInfo = ''
criteria = factory.CmSelectionCriteria(
MaxReturnedDevices=1000,
DeviceClass='Phone',
Model=255,
Status='Any',
NodeName='',
SelectBy='IPV4Address',
SelectItems=Item,
Protocol='Any',
DownloadStatus='Any'
)
rawresult = client.service.selectCmDevice(stateInfo, criteria)['SelectCmDeviceResult']['CmNodes']['item']
for rawphone in rawresult:
phone = (rawphone['CmDevices']['item'])
for singlefield in phone:
field = singlefield
print(field['Name'])
for rawip in (field['IPAddress']['item']):
ip = rawip
print(rawip['IP'])
print(field['LoginUserId'])
for rawdn in (field['LinesStatus']['item']):
dn = rawdn
print(rawdn['DirectoryNumber'])
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide