Skip to content

Instantly share code, notes, and snippets.

@dandye
Created November 20, 2014 22:52
Show Gist options
  • Save dandye/7b619b40ec765e921d4f to your computer and use it in GitHub Desktop.
Save dandye/7b619b40ec765e921d4f to your computer and use it in GitHub Desktop.
Hailataxii discovery example using litaxii
{
"metadata": {
"name": "hailataxii_disovery_with_libtaxii"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": "# Show that required version of lxml is installed\nfrom lxml import etree\netree.LXML_VERSION",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": "(3, 3, 1, 0)"
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "# Install library from CheeseShop\n!pip install libtaxii",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Downloading/unpacking libtaxii\n Running setup.py (path:c:\\users\\dandye\\appdata\\local\\temp\\pip_build_DanDye\\libtaxii\\setup.py) egg_info for package libtaxii\n \n warning: no files found matching 'README.md'\n warning: no previously-included files matching '*.pyc' found under directory 'docs'\n warning: no previously-included files matching '*.pyo' found under directory 'docs'\n no previously-included directories found matching 'docs\\_build'\nRequirement already satisfied (use --upgrade to upgrade): lxml>=2.2.3 in c:\\anaconda\\lib\\site-packages (from libtaxii)\nRequirement already satisfied (use --upgrade to upgrade): python-dateutil>=1.4.1 in c:\\anaconda\\lib\\site-packages (from libtaxii)\nInstalling collected packages: libtaxii\n Running setup.py install for libtaxii\n \n warning: no files found matching 'README.md'\n warning: no previously-included files matching '*.pyc' found under directory 'docs'\n warning: no previously-included files matching '*.pyo' found under directory 'docs'\n no previously-included directories found matching 'docs\\_build'\n Installing fulfillment_client-script.py script to C:\\Anaconda\\Scripts\n Installing fulfillment_client.exe script to C:\\Anaconda\\Scripts\n Installing poll_client_10-script.py script to C:\\Anaconda\\Scripts\n Installing poll_client_10.exe script to C:\\Anaconda\\Scripts\n Installing collection_information_client-script.py script to C:\\Anaconda\\Scripts\n Installing collection_information_client.exe script to C:\\Anaconda\\Scripts\n Installing discovery_client-script.py script to C:\\Anaconda\\Scripts\n Installing discovery_client.exe script to C:\\Anaconda\\Scripts\n Installing inbox_client-script.py script to C:\\Anaconda\\Scripts\n Installing inbox_client.exe script to C:\\Anaconda\\Scripts\n Installing feed_information_client_10-script.py script to C:\\Anaconda\\Scripts\n Installing feed_information_client_10.exe script to C:\\Anaconda\\Scripts\n Installing poll_client-script.py script to C:\\Anaconda\\Scripts\n Installing poll_client.exe script to C:\\Anaconda\\Scripts\n Installing discovery_client_10-script.py script to C:\\Anaconda\\Scripts\n Installing discovery_client_10.exe script to C:\\Anaconda\\Scripts\nSuccessfully installed libtaxii\nCleaning up...\n"
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": "import libtaxii as t\nimport libtaxii.clients as tc\nimport libtaxii.messages_11 as tm11\nimport xml.dom.minidom\n\nclient = tc.HttpClient()\nclient.set_auth_type(tc.HttpClient.AUTH_BASIC)\nclient.set_use_https(False)\nclient.set_auth_credentials({'username': 'guest', 'password': 'guest'})\n\ndiscovery_request = tm11.DiscoveryRequest(tm11.generate_message_id())\ndiscovery_xml = discovery_request.to_xml()\n\nhttp_resp = client.call_taxii_service2('hailataxii.com', '/taxii-discovery-service/', t.VID_TAXII_XML_11, discovery_xml)\n\ntaxii_message = t.get_message_from_http_response(http_resp, discovery_request.message_id)\n\nprint xml.dom.minidom.parseString(taxii_message.to_xml()).toprettyxml()\n",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "<?xml version=\"1.0\" ?>\n<taxii_11:Discovery_Response in_response_to=\"37682\" message_id=\"52547\" xmlns:taxii=\"http://taxii.mitre.org/messages/taxii_xml_binding-1\" xmlns:taxii_11=\"http://taxii.mitre.org/messages/taxii_xml_binding-1.1\" xmlns:tdq=\"http://taxii.mitre.org/query/taxii_default_query-1\">\n\t<taxii_11:Service_Instance available=\"true\" service_type=\"DISCOVERY\" service_version=\"urn:taxii.mitre.org:services:1.1\">\n\t\t<taxii_11:Protocol_Binding>urn:taxii.mitre.org:protocol:https:1.0</taxii_11:Protocol_Binding>\n\t\t<taxii_11:Address>http://hailataxii.com:80/taxii-data</taxii_11:Address>\n\t\t<taxii_11:Message_Binding>urn:taxii.mitre.org:message:xml:1.1</taxii_11:Message_Binding>\n\t</taxii_11:Service_Instance>\n\t<taxii_11:Service_Instance available=\"true\" service_type=\"COLLECTION_MANAGEMENT\" service_version=\"urn:taxii.mitre.org:services:1.1\">\n\t\t<taxii_11:Protocol_Binding>urn:taxii.mitre.org:protocol:https:1.0</taxii_11:Protocol_Binding>\n\t\t<taxii_11:Address>http://hailataxii.com:80/taxii-data</taxii_11:Address>\n\t\t<taxii_11:Message_Binding>urn:taxii.mitre.org:message:xml:1.1</taxii_11:Message_Binding>\n\t</taxii_11:Service_Instance>\n\t<taxii_11:Service_Instance available=\"true\" service_type=\"POLL\" service_version=\"urn:taxii.mitre.org:services:1.1\">\n\t\t<taxii_11:Protocol_Binding>urn:taxii.mitre.org:protocol:https:1.0</taxii_11:Protocol_Binding>\n\t\t<taxii_11:Address>http://hailataxii.com:80/taxii-data</taxii_11:Address>\n\t\t<taxii_11:Message_Binding>urn:taxii.mitre.org:message:xml:1.1</taxii_11:Message_Binding>\n\t</taxii_11:Service_Instance>\n</taxii_11:Discovery_Response>\n\n"
}
],
"prompt_number": 38
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "\n",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment