This repository is deprecated; please follow the main search page or use the ‘Related code repos’ widget on the right side of the current page.

cmxreceiver-python

A basic web service to accept CMX data from a Cisco Meraki network

  • Accept a GET request from Meraki and respond with a validator
  • Meraki will POST to server, if validated.
  • POST will contain a secret, which can be verified by the server.
  • JSON data will be in the req.body.data. This will be available in the cmxData function's data object.
    *note: CMX is now called Scanning API in Meraki documentation

cmxreceiver.py

-- The basic app will only place the data received on the console.

cmxreceiver-mongodb.py

-- Extends the basic app by placing data into a local MongoDB database.

Prerequisites

Installation and Run

$ git clone <<this repo>>

Direct Run with Python3

  • Option 1 - Basic Receiver
python3 cmxreceiver.py -v <validator> -s <secret>'
  • Option 2 - Receiver with MongoDB
python3 cmxreceiver-mongodb.py -v <validator> -s <secret>'

Via Flask

  • Option 1 - Basic Receiver
export FLASK_APP=cmxreceiver.py -v yourValidatorKey -s yourSecret
flask run -h 0.0.0.0
 * Running on http://0.0.0.0:5000/
  • Option 2 - Receiver with MongoDB
export FLASK_APP=cmxreceiver-mongodb.py -v yourValidatorKey -s yourSecret
flask run -h 0.0.0.0
 * Running on http://0.0.0.0:5000/

Defaults

TIP

  • use ngrok to expose port 5000
ngrok http 5000

Then use the new url it creates as your base URL. https://2a6eed03.ngrok.io/

Cisco Meraki CMX Location API Documentation

https://documentation.meraki.com/MR/Monitoring_and_Reporting/CMX_Analytics#CMX_Location_API

Written by Cory Guynn

2016

http://www.InternetOfLEGO.com
http://Developers.Meraki.com

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.