{"id":496,"date":"2019-11-27T04:23:29","date_gmt":"2019-11-27T02:23:29","guid":{"rendered":"http:\/\/xn--jrme-bpa1e.net\/blog\/?p=496"},"modified":"2019-11-27T04:23:29","modified_gmt":"2019-11-27T02:23:29","slug":"turn-off-on-e3372-connection","status":"publish","type":"post","link":"https:\/\/xn--jrme-bpa1e.net\/blog\/post\/496\/turn-off-on-e3372-connection\/","title":{"rendered":"Turn off\/on E3372 connection"},"content":{"rendered":"\n<p>From: https:\/\/www.gitmemory.com\/issue\/arska\/e3372\/1\/491995448<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env python\n\nimport sys\nimport requests\nimport xmltodict\n\nclass HuaweiE3372(object):\n  BASE_URL = 'http:\/\/{host}'\n  TOKEN_URL = '\/api\/webserver\/SesTokInfo'\n  SWITCH_URL = '\/api\/dialup\/mobile-dataswitch'\n  session = None\n\n  def __init__(self,host='192.168.8.1'):\n    self.host = host\n    self.base_url = self.BASE_URL.format(host=host)\n    self.session = requests.Session()\n\n  def switch_modem(self, state='1'):\n    try:\n      # Get session and verification tokens from the modem\n      r = self.session.get(self.base_url + self.TOKEN_URL, timeout=3)\n      _dict = xmltodict.parse(r.text).get('response', None)\n\n      # Build the switch request\n      headers = {\n        'Cookie': _dict['SesInfo'],\n        '__RequestVerificationToken': _dict['TokInfo']\n      }\n      \n      data = '&lt;?xml version: \"1.0\" encoding=\"UTF-8\"?>&lt;request>&lt;dataswitch>' + state + '&lt;\/dataswitch>&lt;\/request>'\n\n      r = self.session.post(self.base_url + self.SWITCH_URL, data=data, headers=headers, timeout=3)\n      if r.status_code == 200:\n        return True\n      else:\n        return False\n\n    except Exception as ex:\n      print(\"Failed to switch modem..\")\n      print(ex)\n      return False\n    \n\ndef main():\n  e3372 = HuaweiE3372()\n\n  # Pass '1' for on\n  # Pass '0' for off\n  e3372.switch_modem('1')\n\nif __name__ == \"__main__\":\n  main()<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>From: https:\/\/www.gitmemory.com\/issue\/arska\/e3372\/1\/491995448<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-496","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/posts\/496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/comments?post=496"}],"version-history":[{"count":1,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/posts\/496\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/posts\/496\/revisions\/497"}],"wp:attachment":[{"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/media?parent=496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/categories?post=496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xn--jrme-bpa1e.net\/blog\/wp-json\/wp\/v2\/tags?post=496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}