Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import requests, xml.etree.ElementTree as ET
- MODEM_IP = '192.168.1.1'
- API_PATH = '/api/'
- # change this with your own credentials
- USERNAME = 'admin'
- PASSWORD = 'password'
- def login():
- # prepare and send XML data for POST request
- XML = ET.Element('request')
- TAG = ET.SubElement(XML, 'Username')
- TAG.text = USERNAME
- TAG = ET.SubElement(XML, 'Password')
- TAG.text = PASSWORD.encode('base64')[:-1]
- REQUEST = '<?xml version="1.0" encoding="UTF-8"?>{0}'.format(ET.tostring(XML, 'utf-8'))
- print '[+] POST login credentials\n{0}\n'.format(REQUEST)
- r = requests.post('http://'+MODEM_IP+API_PATH+'user/login', data=REQUEST)
- # parse response and check if login succeeded or failed
- print '[+] RESPONSE from modem\n{0}\n'.format(r.text)
- XML = ET.fromstring(r.text)
- if XML.text == 'OK':
- return 1
- else:
- return -1
- if (login()):
- print '[+] GET SMS count\n'
- r = requests.get('http://'+MODEM_IP+API_PATH+'sms/sms-count')
- print '[+] RESPONSE from modem\n{0}\n'.format(r.text)
- # now you can parse the XML output of r.text
- '''
- OUTPUT:
- ------
- mrt:~/huawei/mirror/example$ ./get_sms_count.py
- [+] POST login credentials
- <?xml version="1.0" encoding="UTF-8"?><request><Username>admin</Username><Password>cGFzc3dvcmQ=</Password></request>
- [+] RESPONSE from modem
- <?xml version="1.0" encoding="UTF-8"?><response>OK</response>
- [+] GET SMS count
- [+] RESPONSE from modem
- <?xml version="1.0" encoding="utf-8"?>
- <response>
- <LocalUnread>0</LocalUnread>
- <LocalInbox>4</LocalInbox>
- <LocalOutbox>0</LocalOutbox>
- <LocalDraft>0</LocalDraft>
- <LocalDeleted>0</LocalDeleted>
- <SimUnread>0</SimUnread>
- <SimInbox>0</SimInbox>
- <SimOutbox>0</SimOutbox>
- <SimDraft>0</SimDraft>
- <LocalMax>500</LocalMax>
- <SimMax>40</SimMax>
- <NewMsg>0</NewMsg>
- </response>
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement